home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 2 / Gold Medal Software Volume 2 (Gold Medal) (1994).iso / utils / inter37c.arj / INTERRUP.J < prev    next >
Text File  |  1993-10-03  |  353KB  |  9,716 lines

  1. Interrupt List, part 10 of 10
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993 Ralf Brown
  3. --------I-68---------------------------------
  4. INT 68 - Sangoma CCPOP 3270 resident module
  5. SeeAlso: INT 67"Sangoma",INT 92"Sangoma"
  6. --------N-6801--SF1B00-----------------------
  7. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - DISPLAY
  8.     AH = 01h subfn 1B00h
  9.     DS:DX -> control block
  10. Return: control block updated
  11. SeeAlso: AH=01h/SF=2000h,AH=01h/SF=2B00h
  12.  
  13. Format of control block:
  14. Offset    Size    Description
  15.  00h 12 BYTEs    reserved
  16.  0Ch    WORD    1B00h (verb "DISPLAY")
  17.  0Eh  6 BYTEs    00h
  18.  14h    DWORD    (big-endian) return code (see below)
  19.  18h    WORD    00h
  20.  1Ah  8 BYTEs    (big-endian) logical unit ID
  21.  22h  8 BYTEs    (big-endian) partner logical unit name
  22.  2Ah  8 BYTEs    (big-endian) mode name
  23.  32h    BYTE    logical unit session limit
  24.  33h    BYTE    partner logical unit session limit
  25.  34h    BYTE    node maximum negotiable session limit
  26.  35h    BYTE    current session limit
  27.  36h    BYTE    minimum negotiated winner limit
  28.  37h    BYTE    maximum negotiated loser limit
  29.  38h    BYTE    active session count
  30.  39h    BYTE    active CONWINNER session count
  31.  3Ah    BYTE    active CONLOSER session count
  32.  3Bh    BYTE    session termination count
  33.  3Ch    BYTE    bit 7: SESSION_TERMINATION_TARGET_DRAIN
  34.         bit 6: SESSION_TERMINATION_SOURCE_DRAIN
  35.  
  36. Values for return code:
  37.  0000h    successful
  38.  0001h    BAD_TP_ID
  39.  0002h    BAD_CONV_ID
  40.  0003h    bad logical unit ID
  41.  0008h    no physical unit attached
  42.  0110h    bad state
  43.  01B1h    BAD_PART_LUNAME
  44.  01B2h    bad mode name
  45.  0201h    physical unit already active
  46.  0211h    logical unit already active
  47.  0212h    BAD_PART_SESS
  48.  0213h    BAD_RU_SIZES
  49.  0214h    BAD_MODE_SESS
  50.  0216h    BAD_PACING_CNT
  51.  0219h    EXTREME_RUS
  52.  021Ah    SNASVCMG_1
  53.  0223h    SSCP_CONNECTED_LU
  54.  0230h    invalid change
  55.  0243h    too many TPs
  56.  0272h    adapter close failure
  57.  0281h    GET_ALLOC_BAD_TYPE
  58.  0282h    unsuccessful
  59.  0283h    DLC failure
  60.  0284h    unrecognized DLC
  61.  0286h    duplicate DLC
  62.  0301h    SSCP_PU_SESSION_NOT_ACTIVE
  63.  0302h    data exceeds RU size
  64.  0401h    invalid direction
  65.  0402h    invalid type
  66.  0403h    segment overlap
  67.  0404h    invalid first character
  68.  0405h    table error
  69.  0406h    conversion error
  70.  F0010000h    APPC disabled
  71.  F0020000h    APPC busy
  72.  F0030000h    APPC abended
  73.  F0040000h    incomplete
  74. --------N-6801--SF2000-----------------------
  75. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - ATTACH PHYSICAL UNIT
  76.     AH = 01h subfn 2000h
  77.     DS:DX -> control block
  78. Return: control block updated
  79. SeeAlso: AH=01h/SF=2100h,AH=01h/SF=2B00h
  80.  
  81. Format of control block:
  82. Offset    Size    Description
  83.  00h 12 BYTEs    reserved
  84.  0Ch    WORD    2000h (verb "Attach Physical Unit")
  85.  0Eh  6 BYTEs    00h
  86.  14h    DWORD    (big-endian) return code (see AH=01h/SF=1B00h)
  87.  18h    WORD    00h
  88.  1Ah    BYTE    version
  89.  1Bh    BYTE    release
  90.  1Ch  8 BYTEs    (big-endian) net name
  91.  24h  8 BYTEs    (big-endian) physical unit name
  92.  2Ch  8 BYTEs    00h
  93.  34h    DWORD    pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors
  94.         (see also AH=01h/SF=2100h)
  95.  38h    DWORD    00h
  96.  3Ch    BYTE    00h RETURN_CONTROL: COMPLETE
  97.         01h RETURN_CONTROL: INCOMPLETE
  98. --------N-6801--SF2100-----------------------
  99. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - ATTACH LOGICAL UNIT
  100.     AH = 01h subfn 2100h
  101.     DS:DX -> control block
  102. Return: control block updated
  103. SeeAlso: AH=01h/SF=2000h,AH=01h/SF=2200h,AH=01h/SF=2B00h
  104.  
  105. Format of control block:
  106. Offset    Size    Description
  107.  00h 12 BYTEs    reserved
  108.  0Ch    WORD    2100h (verb "Attach Logical Unit")
  109.  0Eh  6 BYTEs    00h
  110.  14h    DWORD    (big-endian) return code (see AH=01h/SF=1B00h)
  111.  18h    WORD    70  offset to partner logical unit record
  112.  1Ah  8 BYTEs    (big-endian) logical unit name
  113.  22h  8 BYTEs    (big-endian) logical unit ID
  114.  2Ah    BYTE    logical unit local address
  115.  2Bh    BYTE    logical unit session limit
  116.  2Ch    DWORD    pointer to CREATE_TP_EXIT routine,
  117.         FFFFFFFFh = reject incoming ALLOCATEs
  118.         00000000h = queue ALLOCATEs
  119.  30h    DWORD    00h
  120.  34h    DWORD    pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors
  121.  38h    DWORD    00h
  122.  3Ch    BYTE    maximum TPs
  123.  3Dh    BYTE    queue depth
  124.  3Eh    DWORD    pointer to LU_LU_PASSWORD_EXIT routine, FFFFFFFFh=no pswd exit
  125.  42h    DWORD    00h
  126.  46h    WORD    total length of partner records
  127.  48h    var    array of partner logical unit records (see below)
  128.  
  129. Format of partner logical unit record:
  130. Offset    Size    Description
  131.  00h    WORD    length of this partner logical unit record
  132.  02h    WORD    42  offset to mode records
  133.  04h  8 BYTEs    (big-endian) partner logical unit name
  134.  0Ch    BYTE    partner logical unit security capabilities
  135.         bit 7: already verified
  136.         bit 6: conversation level security
  137.         bit 5: session level security
  138.  0Dh    BYTE    partner logical unit session limit
  139.  0Eh    WORD    partner logical unit maximum MC_SEND_LL
  140.  10h  8 BYTEs    (big-endian) partner logical unit DLC name
  141.  18h    BYTE    partner logical unit adapter number
  142.  19h 17 BYTEs    (counted string) partner logical unit adapter address
  143.  2Ah    WORD    total length of mode records
  144.  2Ch 16N BYTEs    array of mode records (see below)
  145.  
  146. Format of mode record:
  147. Offset    Size    Description
  148.  00h    WORD    16  length of this mode record
  149.  02h  8 BYTEs    (big-endian) mode name
  150.  0Ah    WORD    RU_SIZE high bound
  151.  0Ch    WORD    RU_SIZE low bound
  152.  0Eh    BYTE    mode maximum negotiable session limit
  153.  0Fh    BYTE    pacing size for receive
  154.  
  155. Routines defined by LU_LU_PASSWORD_EXIT, CREATE_TP_EXIT, and SYSTEM_LOG_EXIT
  156. pointers are called by pushing the DWORD pointer to the verb on the stack and
  157. then performing a FAR call.
  158.  
  159. Format of ACCESS_LU_LU_PW verb:
  160. Offset    Size    Description
  161.  00h 12 BYTEs    reserved
  162.  0Ch    WORD    1900h (verb "ACCESS_LU_LU_PW")
  163.  0Eh  8 BYTEs    (big-endian) logical unit ID
  164.  16h  8 BYTEs    (big-endian) logical unit name
  165.  1Eh  8 BYTEs    (big-endian) partner logical unit name
  166.  26h 17 BYTEs    (counted string) partner fully qualified logical unit name
  167.  37h    BYTE    password available (0=no, 1=yes)
  168.  38h  8 BYTEs    password
  169.  
  170. Format of CREATE_TP verb:
  171. Offset    Size    Description
  172.  00h 12 BYTEs    reserved
  173.  0Ch    WORD    2300h (verb "CREATE_TP")
  174.  0Eh  6 BYTEs    00h
  175.  14h    DWORD    (big-endian) sense code (see below)
  176.  18h  8 BYTEs    (big-endian) TP ID
  177.  20h  8 BYTEs    (big-endian) logical unit ID
  178.  28h    DWORD    (big-endian) conversation ID
  179.  2Ch    BYTE    0 basic conversation, 1 mapped conversation
  180.  2Dh    BYTE    0 no sync level, 1 confirm
  181.  2Eh    BYTE    reserved
  182.  2Fh 65 BYTEs    (counted string) transaction program name
  183.  70h  6 BYTEs    00h
  184.  76h    WORD    length of ERROR_LOG_DATA to return
  185.  78h    DWORD    pointer to ERROR_LOG_DATA buffer
  186.  7Ch  8 BYTEs    (big-endian) partner logical unit name
  187.  84h 18 BYTEs    (counted string) partner fully qualified logical unit name
  188.  96h  8 BYTEs    (big-endian) mode name
  189.  9Eh 12 BYTEs    00h
  190.  AAh 11 BYTEs    (counted string) password
  191.  B5h 11 BYTEs    (counted string) user ID
  192.  C0h    BYTE    0 verification should be performed
  193.         1 already verified
  194.  
  195. Values for sense code:
  196.  00000000h    Ok
  197.  080F6051h    SECURITY_NOT_VALID
  198.  084B6031h    TP_NOT_AVAIL_RETRY
  199.  084C0000h    TP_NOT_AVAIL_NO_RETRY
  200.  10086021h    TP_NAME_NOT_RECOGNIZED
  201.  10086034h    CONVERSATION_TYPE_MISMATCH
  202.  10086041h    SYNC_LEVEL_NOT_SUPPORTED
  203.  
  204. Format of SYSLOG verb:
  205. Offset    Size    Description
  206.  00h 12 BYTEs    reserved
  207.  0Ch    WORD    2600h (verb "SYSLOG")
  208.  0Eh 10 BYTEs    00h
  209.  18h    WORD    (big-endian) type
  210.  1Ah    DWORD    (big-endian) subtype
  211.  1Eh    DWORD    pointer to ADDITIONAL_INFO
  212.  22h    DWORD    (big-endian) conversation ID
  213.  26h  8 BYTEs    (big-endian) TP ID
  214.  2Eh  8 BYTEs    (big-endian) physical unit or logical unit name
  215.  36h    WORD    length of data
  216.  38h    DWORD    pointer to data
  217.  3Ch    BYTE    00h
  218. --------N-6801--SF2200-----------------------
  219. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - DETACH LOGICAL UNIT
  220.     AH = 01h subfn 2200h
  221.     DS:DX -> control block
  222. Return: control block updated
  223. SeeAlso: AH=01h/SF=2000h,AH=01h/SF=2100h,AH=01h/SF=2700h
  224.  
  225. Format of control block:
  226. Offset    Size    Description
  227.  00h 12 BYTEs    reserved
  228.  0Ch    WORD    2200h (verb "Detach Logical Unit")
  229.  0Eh  6 BYTEs    00h
  230.  14h    DWORD    (big-endian) return code (see AH=01h/SF=1B00h)
  231.  18h  8 BYTEs    (big-endian) logical unit ID
  232.  20h    BYTE    00h
  233. --------N-6801--SF2700-----------------------
  234. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - DETACH PHYSICAL UNIT
  235.     AH = 01h subfn 2700h
  236.     DS:DX -> control block
  237. Return: control block updated
  238. SeeAlso: AH=01h/SF=2000h,AH=01h/SF=2100h,AH=01h/SF=2200h
  239.  
  240. Format of control block:
  241. Offset    Size    Description
  242.  00h 12 BYTEs    reserved
  243.  0Ch    WORD    2700h (verb "Detach Physical Unit")
  244.  0Eh  6 BYTEs    00h
  245.  14h    DWORD    (big-endian) return code (see AH=01h/SF=1B00h)
  246.  18h    BYTE    00h  type: hard
  247.         01h  type: soft
  248. --------N-6801--SF2B00-----------------------
  249. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - ACTIVATE DLC
  250.     AH = 01h subfn 2B00h
  251.     DS:DX -> control block
  252. Return: control block updated
  253. SeeAlso: AH=01h/SF=1B00h,AH=01h/SF=2000h
  254.  
  255. Format of control block:
  256. Offset    Size    Description
  257.  00h 12 BYTEs    reserved
  258.  0Ch    WORD    2B00h (verb "Activate DLC")
  259.  0Eh  6 BYTEs    00h
  260.  14h    DWORD    (big-endian) return code (see AH=01h/SF=1B00h)
  261.  18h  8 BYTEs    (big-endian) DLC name
  262.  20h    BYTE    adapter number
  263. --------N-6802--SF0100-----------------------
  264. INT 68 - APPC/PC - CONNECTION CONTROL - ALLOCATE
  265.     AH = 02h subfn 0100h
  266.     DS:DX -> control block
  267. Return: control block updated
  268. SeeAlso: AH=02h/SF=0500h
  269.  
  270. Format of control block:
  271. Offset    Size    Description
  272.  00h 12 BYTEs    reserved
  273.  0Ch    WORD    0100h (verb "Allocate" or "MC_Allocate")
  274.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  275.         0 if basic verb
  276.  0Fh  5 BYTEs    reserved (0)
  277.  14h    WORD    (big-endian) primary return code (see below)
  278.  16h    DWORD    (big-endian) error code (see below)
  279.  1Ah  8 BYTEs    (big-endian) TP_ID
  280.  22h    DWORD    (big-endian) conversation ID
  281.  26h    BYTE    (MC_Allocate only) 0 basic conversation
  282.                    1 mapped conversation
  283.  27h    BYTE    SYNC_LEVEL (00h none, 01h confirm)
  284.  28h    WORD    0000h
  285.  2Ah    BYTE    00h RETURN_CONTROL: when session allocated
  286.         01h RETURN_CONTROL: immediate
  287.         02h RETURN_CONTROL: when session free
  288.  2Bh  8 BYTEs    00h
  289.  33h  8 BYTEs    (big-endian) partner logical unit name
  290.  3Bh  8 BYTEs    (big-endian) mode name
  291.  43h 65 BYTEs    (counted string) TP name
  292.  84h    BYTE    security (00h none, 01h same, 02h pgm)
  293.  85h 11 BYTEs    00h
  294.  90h 11 BYTEs    (counted string) password
  295.  9Bh 11 BYTEs    (counted string) user ID
  296.  A6h    WORD    PIP_DATA length
  297.  A8h    DWORD    pointer to PIP_DATA
  298.  
  299. Values for primary return code:
  300.  0000h    successful
  301.  0001h    parameter check
  302.  0002h    state check
  303.  0003h    allocation error
  304.  0005h    deallocate abended
  305.  0006h    deallocate abended program
  306.  0007h    deallocate abended SVC
  307.  0008h    deallocate abended timer
  308.  0009h    deallocate normal return
  309.  000Ah    data posting blocked
  310.  000Bh    posting not active
  311.  000Ch    PROG_ERROR_NO_TRUNC
  312.  000Dh    PROG_ERROR_TRUNC
  313.  000Eh    PROG_ERROR_PURGING
  314.  000Fh    CONV_FAILURE_RETRY
  315.  0010h    CONV_FAILURE_NO_RETRY
  316.  0011h    SVC_ERROR_NO_TRUNC
  317.  0012h    SVC_ERROR_TRUNC
  318.  0013h    SVC_ERROR_PURGING
  319.  0014h    unsuccessful
  320.  0018h    CNOS partner logical unit reject
  321.  0019h    conversation type mixed
  322.  F001h    APPC disabled
  323.  F002h    APPC busy
  324.  F003h    APPC abended
  325.  F004h    incomplete
  326.  
  327. Values for error code:
  328.  0001h    bad TP ID
  329.  0002h    bad conversation ID
  330.  0004h    allocation error, no retry
  331.  0005h    allocation error, retry
  332.  0006h    data area crosses segment boundary
  333.  0010h    bad TPN length
  334.  0011h    bad CONV length
  335.  0012h    bad SYNC level
  336.  0013h    bad security selection
  337.  0014h    bad return control
  338.  0015h    SEC_TOKENS too big
  339.  0016h    PIP_LEN incorrect
  340.  0017h    no use of SNASVCMG
  341.  0018h    unknown partner mode
  342.  0031h    confirm: SYNC_NONE
  343.  0032h    confirm: bad state
  344.  0033h    confirm: NOT_LL_BDY
  345.  0041h    confirmed: bad state
  346.  0051h    deallocate: bad type
  347.  0052h    deallocate: flush bad state
  348.  0053h    deallocate: confirm bad state
  349.  0055h    deallocate: NOT_LL_BDY
  350.  0057h    deallocate: log LL_WRONG
  351.  0061h    flush: not send state
  352.  0091h    post on receipt: invalid length
  353.  0092h    post on receipt: not in receive state
  354.  0093h    post on receipt: bad fill
  355.  00A1h    prepare to receive:invalid type
  356.  00A2h    prepare to receive: unfinished LL
  357.  00A3h    prepare to receive: not in send state
  358.  00B1h    receive and wait: bad state
  359.  00B2h    receive and wait: NOT_LL_BDY
  360.  00B5h    receive and wait: bad fill
  361.  00C1h    receive immediate: not in receive state
  362.  00C4h    receive immediate: bad fill
  363.  00E1h    request to send: not in receive state
  364.  00F1h    send data: bad LL
  365.  00F2h    send data: not in send state
  366.  0102h    send error: log LL wrong
  367.  0103h    send error: bad type
  368.  0121h    test: invalid type
  369.  0122h    test: not in receive state
  370. --------N-6802--SF0300-----------------------
  371. INT 68 - APPC/PC - CONNECTION CONTROL - CONFIRM
  372.     AH = 02h subfn 0300h
  373.     DS:DX -> control block
  374. Return: control block updated
  375. SeeAlso: AH=02h/SF=0400h
  376.  
  377. Format of control block:
  378. Offset    Size    Description
  379.  00h 12 BYTEs    reserved
  380.  0Ch    WORD    0300h (verb "Confirm" or "MC_Confirm")
  381.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  382.         0 if basic verb
  383.  0Fh  5 BYTEs    reserved (0)
  384.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  385.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  386.  1Ah  8 BYTEs    (big-endian) TP_ID
  387.  22h    DWORD    (big-endian) conversation ID
  388.  26h    BYTE    request to send received (0=no, 1=yes)
  389. --------N-6802--SF0400-----------------------
  390. INT 68 - APPC/PC - CONNECTION CONTROL - CONFIRMED
  391.     AH = 02h subfn 0400h
  392.     DS:DX -> control block
  393. Return: control block updated
  394. SeeAlso: AH=02h/SF=0300h
  395.  
  396. Format of control block:
  397. Offset    Size    Description
  398.  00h 12 BYTEs    reserved
  399.  0Ch    WORD    0400h (verb "Confirmed" or "MC_Confirmed")
  400.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  401.         0 if basic verb
  402.  0Fh  5 BYTEs    reserved (0)
  403.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  404.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  405.  1Ah  8 BYTEs    (big-endian) TP_ID
  406.  22h    DWORD    (big-endian) conversation ID
  407. --------N-6802--SF0500-----------------------
  408. INT 68 - APPC/PC - CONNECTION CONTROL - DEALLOCATE
  409.     AH = 02h subfn 0500h
  410.     DS:DX -> control block
  411. Return: control block updated
  412. SeeAlso: AH=02h/SF=0100h,AH=02h/SF=0300h
  413.  
  414. Format of control block:
  415. Offset    Size    Description
  416.  00h 12 BYTEs    reserved
  417.  0Ch    WORD    0500h (verb "Deallocate" or "MC_Deallocate")
  418.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  419.         0 if basic verb
  420.  0Fh  5 BYTEs    reserved (0)
  421.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  422.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  423.  1Ah  8 BYTEs    (big-endian) TP_ID
  424.  22h    DWORD    (big-endian) conversation ID
  425.  26h    BYTE    00h
  426.  27h    BYTE    type
  427.         00h SYNC_LEVEL
  428.         01h FLUSH
  429.         02h ABEND_PROC
  430.         03h ABEND_SVC
  431.         04h ABEND_TIMER
  432.         05h ABEND
  433.  28h    WORD    (MC_Deallocate only) length of error log data
  434.  2Ah    DWORD    (MC_Deallocate only) pointer to error log data
  435. --------N-6802--SF0600-----------------------
  436. INT 68 - APPC/PC - CONNECTION CONTROL - FLUSH
  437.     AH = 02h subfn 0600h
  438.     DS:DX -> control block
  439. Return: control block updated
  440. SeeAlso: AH=02h/SF=0300h
  441.  
  442. Format of control block:
  443. Offset    Size    Description
  444.  00h 12 BYTEs    reserved
  445.  0Ch    WORD    0600h (verb "Flush" or "MC_Flush")
  446.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  447.         0 if basic verb
  448.  0Fh  5 BYTEs    reserved (0)
  449.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  450.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  451.  1Ah  8 BYTEs    (big-endian) TP_ID
  452.  22h    DWORD    (big-endian) conversation ID
  453. --------N-6802--SF0700-----------------------
  454. INT 68 - APPC/PC - CONNECTION CONTROL - GET ATTRIBUTES
  455.     AH = 02h subfn 0700h
  456.     DS:DX -> control block
  457. Return: control block updated
  458. SeeAlso: AH=02h/SF=0300h
  459.  
  460. Format of control block:
  461. Offset    Size    Description
  462.  00h 12 BYTEs    reserved
  463.  0Ch    WORD    0700h (verb "Get_Attributes" or "MC_Get_Attributes")
  464.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  465.         0 if basic verb
  466.  0Fh  5 BYTEs    reserved (0)
  467.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  468.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  469.  1Ah  8 BYTEs    (big-endian) TP_ID
  470.  22h    DWORD    (big-endian) conversation ID
  471.  26h  8 BYTEs    (big-endian) logical unit ID
  472.  2Eh    BYTE    00h
  473.  2Fh    BYTE    SYNC_LEVEL (0=none, 1=confirm)
  474.  30h  8 BYTEs    (big-endian) mode name
  475.  38h  8 BYTEs    (big-endian) own net name
  476.  40h  8 BYTEs    (big-endian) own logical unit name
  477.  48h  8 BYTEs    (big-endian) partner logical unit name
  478.  50h 18 BYTEs    (counted string) partner's fully qualified logical unit name
  479.  62h    BYTE    00h
  480.  63h 11 BYTEs    (counted string) user ID
  481. --------N-6802--SF0800-----------------------
  482. INT 68 - APPC/PC - CONNECTION CONTROL - GET CONVERSATION TYPE
  483.     AH = 02h subfn 0800h
  484.     DS:DX -> control block
  485. Return: control block updated
  486. SeeAlso: AH=02h/SF=0300h
  487.  
  488. Format of control block:
  489. Offset    Size    Description
  490.  00h 12 BYTEs    reserved
  491.  0Ch    WORD    0800h (verb "Get_Type")
  492.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  493.         0 if basic verb
  494.  0Fh  5 BYTEs    reserved (0)
  495.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  496.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  497.  1Ah  8 BYTEs    (big-endian) TP_ID
  498.  22h    DWORD    (big-endian) conversation ID
  499.  26h    BYTE    (return) type (0=basic conversation, 1=mapped conversation)
  500. --------N-6802--SF0900-----------------------
  501. INT 68 - APPC/PC - CONNECTION CONTROL - POST ON RECEIPT
  502.     AH = 02h subfn 0900h
  503.     DS:DX -> control block
  504. Return: control block updated
  505. SeeAlso: AH=02h/SF=0A00h
  506.  
  507. Format of control block:
  508. Offset    Size    Description
  509.  00h 12 BYTEs    reserved
  510.  0Ch    WORD    0900h (verb "Post_on_Receipt")
  511.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  512.         0 if basic verb
  513.  0Fh  5 BYTEs    reserved (0)
  514.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  515.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  516.  1Ah  8 BYTEs    (big-endian) TP_ID
  517.  22h    DWORD    (big-endian) conversation ID
  518.  26h    WORD    maximum length
  519.  28h    BYTE    fill (0=buffer, 1=LL)
  520. --------N-6802--SF0A00-----------------------
  521. INT 68 - APPC/PC - CONNECTION CONTROL - PREPARE TO RECEIVE
  522.     AH = 02h subfn 0A00h
  523.     DS:DX -> control block
  524. Return: control block updated
  525. SeeAlso: AH=02h/SF=0900h,AH=02h/SF=0B00h
  526.  
  527. Format of control block:
  528. Offset    Size    Description
  529.  00h 12 BYTEs    reserved
  530.  0Ch    WORD    0A00h (verb "Prepare_to_Receive" or "MC_Prepare_to_Receive")
  531.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  532.         0 if basic verb
  533.  0Fh  5 BYTEs    reserved (0)
  534.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  535.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  536.  1Ah  8 BYTEs    (big-endian) TP_ID
  537.  22h    DWORD    (big-endian) conversation ID
  538.  26h    BYTE    type (0=SYNC_LEVEL, 1=FLUSH)
  539.  27h    BYTE    locks (0=short, 1=long)
  540. --------N-6802--SF0B00-----------------------
  541. INT 68 - APPC/PC - CONNECTION CONTROL - RECEIVE AND WAIT
  542.     AH = 02h subfn 0B00h
  543.     DS:DX -> control block
  544. Return: control block updated
  545. SeeAlso: AH=02h/SF=0C00h,AH=02h/SF=0F00h
  546.  
  547. Format of control block:
  548. Offset    Size    Description
  549.  00h 12 BYTEs    reserved
  550.  0Ch    WORD    0B00h (verb "Receive_and_Wait" or "MC_Receive_and_Wait")
  551.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  552.         0 if basic verb
  553.  0Fh  5 BYTEs    reserved (0)
  554.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  555.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  556.  1Ah  8 BYTEs    (big-endian) TP_ID
  557.  22h    DWORD    (big-endian) conversation ID
  558.  26h    BYTE    type of information received (see below)
  559.  27h    BYTE    (MC_Receive_and_Wait only) fill (0=buffer, 1=LL)
  560.  28h    BYTE    Request_to_Send_Received (0=no, 1=yes)
  561.  29h    WORD    maximum length
  562.  2Bh    WORD    data length
  563.  2Dh    DWORD    pointer to data
  564.  
  565. Values for type of information received:
  566.  00h    data
  567.  01h    data complete
  568.  02h    data incomplete
  569.  03h    confirm
  570.  04h    confirm send
  571.  05h    confirm deallocate
  572.  06h    send
  573. --------N-6802--SF0C00-----------------------
  574. INT 68 - APPC/PC - CONNECTION CONTROL - RECEIVE IMMEDIATE
  575.     AH = 02h subfn 0C00h
  576.     DS:DX -> control block
  577. Return: control block updated
  578. SeeAlso: AH=02h/SF=0B00h,AH=02h/SF=0F00h
  579.  
  580. Format of control block:
  581. Offset    Size    Description
  582.  00h 12 BYTEs    reserved
  583.  0Ch    WORD    0C00h (verb "Receive_Immediate" or "MC_Receive_Immediate")
  584.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  585.         0 if basic verb
  586.  0Fh  5 BYTEs    reserved (0)
  587.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  588.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  589.  1Ah  8 BYTEs    (big-endian) TP_ID
  590.  22h    DWORD    (big-endian) conversation ID
  591.  26h    BYTE    type of information received (see AH=02h/SF=0B00h)
  592.  27h    BYTE    (MC_Receive_Immediate only) fill (0=buffer, 1=LL)
  593.  28h    BYTE    Request_to_Send_Received (0=no, 1=yes)
  594.  29h    WORD    maximum length
  595.  2Bh    WORD    data length
  596.  2Dh    DWORD    pointer to data
  597. --------N-6802--SF0E00-----------------------
  598. INT 68 - APPC/PC - CONNECTION CONTROL - REQUEST TO SEND
  599.     AH = 02h subfn 0E00h
  600.     DS:DX -> control block
  601. Return: control block updated
  602. SeeAlso: AH=02h/SF=0F00h,AH=02h/SF=1000h
  603.  
  604. Format of control block:
  605. Offset    Size    Description
  606.  00h 12 BYTEs    reserved
  607.  0Ch    WORD    0E00h (verb "Request_to_Send" or "MC_Request_to_Send")
  608.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  609.         0 if basic verb
  610.  0Fh  5 BYTEs    reserved (0)
  611.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  612.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  613.  1Ah  8 BYTEs    (big-endian) TP_ID
  614.  22h    DWORD    (big-endian) conversation ID
  615. --------N-6802--SF0F00-----------------------
  616. INT 68 - APPC/PC - CONNECTION CONTROL - SEND DATA
  617.     AH = 02h subfn 0F00h
  618.     DS:DX -> control block
  619. Return: control block updated
  620. SeeAlso: AH=02h/SF=0E00h,AH=02h/SF=1000h
  621.  
  622. Format of control block:
  623. Offset    Size    Description
  624.  00h 12 BYTEs    reserved
  625.  0Ch    WORD    0F00h (verb "Send_Data" or "MC_Send_Data")
  626.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  627.         0 if basic verb
  628.  0Fh  5 BYTEs    reserved (0)
  629.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  630.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  631.  1Ah  8 BYTEs    (big-endian) TP_ID
  632.  22h    DWORD    (big-endian) conversation ID
  633.  26h    BYTE    request to send received (0=no, 1=yes)
  634.  27h    BYTE    00h
  635.  28h    WORD    data length
  636.  2Ah    DWORD    pointer to data
  637. --------N-6802--SF1000-----------------------
  638. INT 68 - APPC/PC - CONNECTION CONTROL - SEND ERROR
  639.     AH = 02h subfn 1000h
  640.     DS:DX -> control block
  641. Return: control block updated
  642. SeeAlso: AH=02h/SF=0F00h
  643.  
  644. Format of control block:
  645. Offset    Size    Description
  646.  00h 12 BYTEs    reserved
  647.  0Ch    WORD    1000h (verb "Send_Error" or "MC_Send_Error")
  648.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  649.         0 if basic verb
  650.  0Fh  5 BYTEs    reserved (0)
  651.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  652.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  653.  1Ah  8 BYTEs    (big-endian) TP_ID
  654.  22h    DWORD    (big-endian) conversation ID
  655.  26h    BYTE    request to send received (0=no, 1=yes)
  656.  27h    BYTE    type (0=program, 1=SVC)
  657.  28h    DWORD    00h
  658.  2Ch    WORD    (MC_Send_Error only) LOG_DATA length
  659.  2Eh    DWORD    (MC_Send_Error only) pointer to LOG_DATA
  660. --------N-6802--SF1200-----------------------
  661. INT 68 - APPC/PC - CONNECTION CONTROL - TEST
  662.     AH = 02h subfn 1200h
  663.     DS:DX -> control block
  664. Return: control block updated
  665. SeeAlso: AH=02h/SF=1300h
  666.  
  667. Format of control block:
  668. Offset    Size    Description
  669.  00h 12 BYTEs    reserved
  670.  0Ch    WORD    1200h (verb "Test" or "MC_Test")
  671.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  672.         0 if basic verb
  673.  0Fh  5 BYTEs    reserved (0)
  674.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  675.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  676.  1Ah  8 BYTEs    (big-endian) TP_ID
  677.  22h    DWORD    (big-endian) conversation ID
  678.  26h    BYTE    (MC_Test only) test (0=posted, 1=request_to_send received)
  679.         Note: error code has different interpretations for:
  680.             0 posted data
  681.             1 posted not data (primary return code = 0)
  682.             1 bad TP_ID (primary return code = 1)
  683. --------N-6802--SF1300-----------------------
  684. INT 68 - APPC/PC - CONNECTION CONTROL - WAIT
  685.     AH = 02h subfn 1300h
  686.     DS:DX -> control block
  687. Return: control block updated
  688. SeeAlso: AH=02h/SF=1200h
  689.  
  690. Format of control block:
  691. Offset    Size    Description
  692.  00h 12 BYTEs    reserved
  693.  0Ch    WORD    1300h (verb "Wait")
  694.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  695.         0 if basic verb
  696.  0Fh  5 BYTEs    reserved (0)
  697.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  698.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  699.  1Ah  8 BYTEs    (big-endian) TP_ID
  700.  22h    DWORD    (big-endian) conversation ID
  701.  26h    BYTE    number of conversations to wait on
  702.         Note: error codes have interpretations as for AH=02h/SF=1200h
  703. --------N-6803--SF2400-----------------------
  704. INT 68 - APPC/PC - TP STARTED
  705.     AH = 03h subfn 2400h
  706.     DS:DX -> control block (see below)
  707. Return: control block updated
  708.  
  709. Format of control block:
  710. Offset    Size    Description
  711.  00h 12 BYTEs    reserved
  712.  0Ch    WORD    2400h (verb "TP Started")
  713.  0Eh  6 BYTEs    00h
  714.  14h    DWORD    (big-endian) return code (see AH=01h/SF=1B00h)
  715.  18h    WORD    00h
  716.  1Ah  8 BYTEs    (big-endian) logical unit ID
  717.  22h  8 BYTEs    (big-endian) TP ID
  718. --------N-6803--SF2800-----------------------
  719. INT 68 - APPC/PC - GET ALLOCATE
  720.     AH = 03h subfn 2800h
  721.     DS:DX -> control block (see below)
  722. Return: control block updated
  723.  
  724. Format of control block:
  725. Offset    Size    Description
  726.  00h 12 BYTEs    reserved
  727.  0Ch    WORD    2800h (verb "Get ALLOCATE")
  728.  0Eh  6 BYTEs    00h
  729.  14h    DWORD    (big-endian) return code (see AH=01h/SF=1B00h)
  730.  18h    WORD    00h
  731.  1Ah  8 BYTEs    (big-endian) logical unit ID
  732.  22h    BYTE    type (00h dequeue, 01h test)
  733.  23h    DWORD    pointer to CREATE_TP record
  734. --------N-6803--SF2A00-----------------------
  735. INT 68 - APPC/PC - CHANGE LOGICAL UNIT
  736.     AH = 03h subfn 2A00h
  737.     DS:DX -> control block (see below)
  738. Return: control block updated
  739.  
  740. Format of control block:
  741. Offset    Size    Description
  742.  00h 12 BYTEs    reserved
  743.  0Ch    WORD    2A00h (verb "Change Logical Unit")
  744.  0Eh  6 BYTEs    00h
  745.  14h    DWORD    (big-endian) return code (see AH=01h/SF=1B00h)
  746.  18h    WORD    00h
  747.  1Ah  8 BYTEs    (big-endian) logical unit ID
  748.  22h    DWORD    pointer to CREATE_TP_EXIT routine
  749.         FFFFFFFFh reject incoming ALLOCATEs
  750.         00000000h queue ALLOCATEs
  751.  26h    DWORD    00000000h
  752.  2Ah    DWORD    pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh= don't log errors
  753.  2Eh    DWORD    00000000h
  754.  32h    BYTE    maximum TPs
  755.  33h    BYTE    00h stop QUEUE_ALLOCATEs
  756.         01h resume QUEUE_ALLOCATEs
  757.  34h    DWORD    pointer to LU_LU_PASSWORD_EXIT routine, FFFFFFFFh = no exit
  758.  38h    DWORD    00000000h
  759. --------N-6804-------------------------------
  760. INT 68 - APPC/PC - TRANSACTION PROCESSING
  761.     AH = 04h
  762.     DS:DX -> control block (see below)
  763. Return: control block updated
  764.  
  765. Format of control block:
  766. Offset    Size    Description
  767.  00h 12 BYTEs    reserved
  768.  0Ch    WORD    verb (action)
  769.         2500h TP_ENDED
  770.         2900h TP_VALID
  771.  0Eh  6 BYTEs    00h
  772.  14h    DWORD    (big-endian) return code (see AH=01h/SF=1B00h)
  773.  18h    WORD    00h
  774.  1Ah  8 BYTEs    (big-endian) TP_ID
  775.  22h    DWORD    -> CREATE_TP record (only if verb = 2900h)
  776. --------N-6805-------------------------------
  777. INT 68 - APPC/PC - TRANSFER MESSAGE DATA
  778.     AH = 05h
  779.     DS:DX -> control block (see below)
  780. Return: control block updated
  781.  
  782. Format of control block:
  783. Offset    Size    Description
  784.  00h 12 BYTEs    reserved
  785.  0Ch    WORD    1C00h (verb "Transfer Message Data")
  786.  0Eh    BYTE    00h user defined
  787.         01h NMVT
  788.         02h alert subvectors
  789.         03h PDSTATS subvectors
  790.  0Fh  5 BYTEs    00h
  791.  14h    DWORD    (big-endian) return code (see AH=01h/SF=1B00h)
  792.  18h 12 BYTEs    00h
  793.  24h    BYTE    if bit 0 clear, add correlation subvector
  794.         if bit 1 clear, add product set ID subvector
  795.         if bit 2 clear, do SYSLOG
  796.         if bit 3 clear, send SSCP_PU_SESSION
  797.  25h    BYTE    00h
  798.  26h    WORD    length of data
  799.  28h  N BYTEs    data
  800. --------N-6806-------------------------------
  801. INT 68 - APPC/PC - CHANGE NUMBER OF SESSIONS
  802.     AH = 06h
  803.     DS:DX -> control block (see below)
  804. Return: control block updated
  805.  
  806. Format of control block:
  807. Offset    Size    Description
  808.  00h 12 BYTEs    reserved
  809.  0Ch    WORD    1500h (verb "Change Number of Sessions")
  810.  0Eh  6 BYTEs    00h
  811.  14h    WORD    (big-endian) primary return code (see AH=02h)
  812.  16h    DWORD    (big-endian) secondary return code (see below, AH=01h/SF=1B00h)
  813.  1Ah  8 BYTEs    (big-endian) logical unit ID
  814.  22h  8 BYTEs    blanks
  815.  2Ah  8 BYTEs    (big-endian) partner logical unit name
  816.  32h  8 BYTEs    (big-endian) mode name
  817.  3Ah    BYTE    bit 7: use MODE_NAME_SELECT_ALL rather than MODE_NAME
  818.         bit 6: set negotiable values
  819.  3Bh    BYTE    partner logical unit mode session limit
  820.  3Ch    BYTE    minimum CONWINNERS_SOURCE
  821.  3Dh    BYTE    maximum CONWINNERS_TARGET
  822.  3Eh    BYTE    automatic activation
  823.  3Fh    BYTE    00h
  824.  40h    BYTE    bit 7: drain target
  825.         bit 6: drain source
  826.         bit 5: target responsible, not source
  827.  
  828. Values for secondary return code (see also AH=01h/SF=1B00h):
  829.  0000h    accepted
  830.  0001h    negotiated
  831.  0003h    bad logical unit ID
  832.  0004h    allocation failure, no retry
  833.  0005h    allocation failure, retry
  834.  0151h    can't raise limits
  835.  0153h    all modes must reset
  836.  0154h    bad SNASVCMG limits
  837.  0155h    minimum greater than total
  838.  0156h    mode closed (primary return code = 1)
  839.     CNOS mode closed (primary return code = 18h)
  840.  0157h    bad mode name (primary return code = 1)
  841.     CNOS bad mode name (primary return code = 18h)
  842.  0159h    reset SNA drains
  843.  015Ah    single not SRC response
  844.  015Bh    bad partner logical unit
  845.  015Ch    exceeds maximum allowed
  846.  015Dh    change SRC drains
  847.  015Eh    logical unit detached
  848.  015Fh    CNOS command race reject
  849. --------N-6807-------------------------------
  850. INT 68 - APPC/PC - PASSTHROUGH
  851.     AH = 07h
  852.     DS:DX -> control block (format depends on application subsystem)
  853. Return: control block updated
  854. SeeAlso: AH=FFh
  855. --------N-68FA-------------------------------
  856. INT 68 - APPC/PC - ENABLE/DISABLE APPC
  857.     AH = FAh
  858.     AL bit 0 = 0 enable
  859.            1 disable
  860. SeeAlso: AH=FDh
  861. --------N-68FB-------------------------------
  862. INT 68 - APPC/PC - CONVERT
  863.     AH = FBh
  864.     DS:DX -> control block (see below)
  865. Return: control block updated
  866.  
  867. Format of control block:
  868. Offset    Size    Description
  869.  00h 12 BYTEs    reserved
  870.  0Ch    WORD    1A00h (verb "CONVERT")
  871.  0Eh  6 BYTEs    00h
  872.  14h    DWORD    (big-endian) return code
  873.  18h    BYTE    conversion
  874.         00h ASCII to EBCDIC
  875.         01h EBCDIC to ASCII
  876.  19h    BYTE    character set
  877.         00h AE
  878.         01h A
  879.         02h G
  880.  1Ah    WORD    length of string to convert
  881.  1Ch    DWORD    pointer to source
  882.  20h    DWORD    pointer to target
  883. --------N-68FC-------------------------------
  884. INT 68 - APPC/PC - ENABLE/DISABLE MESSAGE TRACING
  885.     AH = FCh
  886.     AL = 00h disable tracing
  887.        = 01h enable tracing
  888.         DX = number of bytes to keep (0=all)
  889. SeeAlso: AH=FDh,AH=FEh
  890. --------N-68FD-------------------------------
  891. INT 68 - APPC/PC - ENABLE/DISABLE API VERB TRACING
  892.     AH = FDh
  893.     AL = 00h disable tracing
  894.          01h enable tracing
  895. SeeAlso: AH=FAh,AH=FCh,AH=FEh
  896. --------N-68FE-------------------------------
  897. INT 68 - APPC/PC - SET TRACE DESTINATION
  898.     AH = FEh
  899.     AL = trace destinations (see below)
  900.     DS:DX -> trace stats record if AL bit 0 set
  901. SeeAlso: AH=FCh,AH=FDh
  902.  
  903. Bitfields for trace destinations:
  904.  bit 0    storage (DS:DX -> trace stats record)
  905.  bit 1    display
  906.  bit 2    file (trace written to file OUTPUT.PC)
  907.  bit 3    printer
  908.  
  909. Format of Trace Statistics Record:
  910. Offset    Size    Description
  911.  00h    DWORD    pointer to storage trace buffer
  912.  04h    WORD    max number of 80-byte records in trace
  913.  06h    WORD    (high-order byte first!) current record number (must init to 0)
  914.  08h    DWORD    (high-order byte first!) number of records written (init to 0)
  915.  0Ch    DWORD    reserved
  916. Note:    do not move record while trace is active
  917. --------N-68FF-------------------------------
  918. INT 68 - APPC/PC - SET PASSTHROUGH
  919.     AH = FFh
  920.     DS:DX -> passthrough exit routine
  921. SeeAlso: AH=07h
  922. --------b-69---------------------------------
  923. INT 69 - Zenith AT BIOS - ???
  924.    called by INT 09 handler
  925. --------N-690100-----------------------------
  926. INT 69 - DECnet DOS CTERM - INSTALLATION CHECK
  927.     AX = 0100h
  928. Return: AL = FFh if present
  929. SeeAlso: AX=010Fh
  930. --------N-690101-----------------------------
  931. INT 69 - DECnet DOS CTERM - SEND BYTE
  932.     AX = 0101h
  933.     BL = character
  934.     DX = session handle
  935. Return: AH >= 80h on error
  936. SeeAlso: AX=0102h
  937. --------N-690102-----------------------------
  938. INT 69 - DECnet DOS CTERM - READ BYTE
  939.     AX = 0102h
  940.     DX = session handle
  941. Return: AH >= 80h on error
  942.     AH < 80h if successful
  943.         AL = character
  944. SeeAlso: AX=0101h
  945. --------N-690103-----------------------------
  946. INT 69 - DECnet DOS CTERM - STATUS
  947.     AX = 0103h
  948.     DX = session handle
  949. Return: AH status flags
  950.         bit 7 session has been aborted
  951.         bit 6 DECnet error
  952.         bit 1 trace data available
  953.         bit 0 receive data available
  954.     AL = reason code if DECnet error (see below)
  955. SeeAlso: AX=0104h
  956.  
  957. Values for reason code:
  958.  00h    normal disconnect
  959.  01h    unknown message from host
  960.  02h    protocol violation from host
  961.  03h    could not process the initiate message
  962.  04h    error receiving message from host
  963.  05h    error sending message to host
  964.  06h    error checking for message from host
  965.  07h    remote system does not support CTERM
  966.  08h    remote system does not support correct protocol version
  967.  09h    did not receive BIND message from host
  968.  0Ah    could not send BIND message to host
  969.  0Bh    no more sessions available
  970.  0Ch    session does not exist
  971.  0Dh    not enough memory to complete operation
  972.  0Eh    connection has broken
  973. Index:    error codes;DECnet DOS CTERM|DECnet DOS CTERM;error codes
  974. --------N-690104-----------------------------
  975. INT 69 - DECnet DOS CTERM - DECnet STATUS
  976.     AX = 0104h
  977.     DX = session handle
  978. Return: AX = reason code (see AX=0103h)
  979. Note:    use this call when AX=0103h returns a DECnet error
  980. SeeAlso: AX=0103h
  981. --------N-690105-----------------------------
  982. INT 69 - DECnet DOS CTERM - OPEN SESSION
  983.     AX = 0105h
  984.     DS:BX -> ASCIZ node name
  985.     ES:DX -> buffer for session control block (see INT 6A/AH=D0h)
  986. Return: AX <= 0 on error
  987.     AX > 0 session handle
  988. SeeAlso: AX=0103h,AX=0106h,AX=010Ah
  989. --------N-690106-----------------------------
  990. INT 69 - DECnet DOS CTERM - CLOSE SESSION
  991.     AX = 0106h
  992.     DX = session handle
  993. Return: AH = 00h good close
  994.        other error code (see AX=0103h)
  995. SeeAlso: AX=0103h,AX=0105h
  996. --------N-69010A-----------------------------
  997. INT 69 - DECnet DOS CTERM - GET SESSION CONTROL BLOCK SIZE
  998.     AX = 010Ah
  999. Return: AX = length of session control block in bytes
  1000. SeeAlso: AX=0105h
  1001. --------N-69010B-----------------------------
  1002. INT 69 - DECnet DOS CTERM - GET DECnet SOCKET
  1003.     AX = 010Bh
  1004.     DX = session handle
  1005. Return: AX > 0    DECnet socket for the session
  1006.        = 0    no match for handle
  1007. --------N-69010F-----------------------------
  1008. INT 69 - DECnet DOS CTERM - DEINSTALL CTERM
  1009.     AX = 010Fh
  1010. Return: AH = 00h successful uninstall
  1011.        other error code
  1012. Note:    CTERM must have been the last TSR loaded in order to deinstall it
  1013. SeeAlso: AX=0100h
  1014. Index:    uninstall;DECnet DOS CTERM
  1015. --------N-690A-------------------------------
  1016. INT 69 - DECnet DOS 2.1+ - DATA LINK LAYER
  1017.     AH = 0Ah
  1018.     AL = function (see below)
  1019.     ES:BX -> Datalink Communication Block
  1020. Return: AX = status (see below)
  1021. SeeAlso: INT 6D"DECnet"
  1022.  
  1023. Values for function:
  1024.  00h    initialize
  1025.  01h    open portal
  1026.  02h    close portal
  1027.  03h    enable multicast address
  1028.  04h    disable multicast address
  1029.  05h    transmit
  1030.  06h    request transmit buffer
  1031.  07h    deallocate transmit buffer
  1032.  08h    read channel status
  1033.  09h    read datalink portal list
  1034.  0Ah    read information about a datalink portal
  1035.  0Bh    read and/or clear counters
  1036.  0Ch    request to boot from a network server
  1037.  0Dh    enable Ethernet channel
  1038.  0Eh    disable Ethernet channel
  1039.  0Fh    start MOP/send a System ID message
  1040.  10h    stop MOP
  1041.  11h    get DECPARM
  1042.  12h    set DECPARM
  1043.  13h    external loopback
  1044.  
  1045. Values for status:
  1046.  00h    successful
  1047.  01h    hardware failed to initialize
  1048.  02h    channel state was not off (must be off to execute that command)
  1049.  03h    channel state is off (must be on to execute that command)
  1050.  04h    address not set
  1051.  05h    hardware missing
  1052.  06h    buffer too small
  1053.  07h    no more buffers available
  1054.  08h    no more resources available
  1055.  09h    promiscuous receiver active
  1056.  0Ah    non exclusive
  1057.  0Bh    unrecognized portal
  1058.  0Ch    protocol type in use
  1059.  0Dh    not a valid Multicast address
  1060.  0Eh    outstanding calls
  1061.  0Fh    hardware doesn't support receiving bad frames
  1062.  10h    none outstanding
  1063.  11h    no events
  1064.  12h    broken
  1065.  13h    buffer quota exceeded
  1066.  14h    already initialized
  1067.  15h    loopback failure
  1068. Index:    error codes;DECnet DOS|DECnet DOS;error codes
  1069.  
  1070. Format of Datalink Communication Block
  1071. Offset    Type    Description
  1072.  00h    WORD    portal ID
  1073.  02h  6 BYTEs    source address
  1074.  08h  6 BYTEs    destination address
  1075.  0Eh    DWORD    buffer pointer
  1076.  12h    WORD    buffer length
  1077.  14h    WORD    operation
  1078.  16h    BYTE    pad flag (used on open)
  1079.         00h no pad
  1080.         01h pad
  1081.  17h    BYTE    mode flag (used on open)
  1082.         00h 802.3
  1083.         01h Ethernet
  1084.         02h promiscuous
  1085.  18h    DWORD    line status change function
  1086.  1Ch    DWORD    received data function
  1087.  20h    DWORD    transmitted data function
  1088.  24h    BYTE    maximum outstanding transmits/receives
  1089.  25h  2 BYTEs    protocol type
  1090.  27h    WORD    buffers lost
  1091. --------N-694001-----------------------------
  1092. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  1093.     AX = 4001h
  1094. Return: CF clear
  1095.     AX = 0000h
  1096.     ES:SI -> ???
  1097. Note:    INT 69 is the default, and may be set to any interrupt from 60h-7Fh;
  1098.       the signature "SYSV" immediately before the interrupt handler serves
  1099.       as the installation check
  1100. SeeAlso: AX=4002h
  1101. Index:    installation check;10NET SYSSVC
  1102. --------N-694002-----------------------------
  1103. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  1104.     AX = 4002h
  1105.     ???
  1106. Return: ???
  1107. Note:    INT 69 is the default, and may be set to any interrupt from 60h-7Fh;
  1108.       the signature "SYSV" immediately before the interrupt handler serves
  1109.       as the installation check
  1110. --------N-694101-----------------------------
  1111. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  1112.     AX = 4101h
  1113. Return: CF clear
  1114.     ES:SI -> ???
  1115. SeeAlso: AX=4102h,AX=4103h,AX=4104h
  1116. --------N-694102-----------------------------
  1117. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  1118.     AX = 4102h
  1119.     ???
  1120. Return: ???
  1121. --------N-694103-----------------------------
  1122. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  1123.     AX = 4103h
  1124.     ???
  1125. Return: ???
  1126. --------N-694104-----------------------------
  1127. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  1128.     AX = 4104h
  1129.     ???
  1130. Return: ???
  1131. --------N-6942-------------------------------
  1132. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  1133.     AH = 42h
  1134.     AL = function (01h-14h)
  1135.     ???
  1136. Return: ???
  1137. --------N-6943-------------------------------
  1138. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  1139.     AH = 43h
  1140.     AL = function (01h-05h)
  1141.     ???
  1142. Return: ???
  1143. --------N-6944-------------------------------
  1144. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  1145.     AH = 44h
  1146.     AL = function (01h-03h)
  1147.     ???
  1148. Return: ???
  1149. --------N-6949-------------------------------
  1150. INT 69 - 10NET v5.0 - SYSSVC.COM - BUG
  1151.     AH = 49h
  1152. Note:    due to a fencepost error, this function branches to hyperspace
  1153. SeeAlso: AX=4001h,AH=FFh
  1154. --------G-696996-----------------------------
  1155. INT 69 - ISR.COM v1.00 - SPECIFY INTERRUPT HANDLER
  1156.     AX = 6996h
  1157.     DS:DX -> interrupt handler or 0000h:0000h to disable
  1158. Return: AX = 9669h
  1159. Program: ISR (Interrupt Service Reflector) is a TSR by Rich Bono which permits
  1160.       a program to provide hardware interrupt handlers even while being
  1161.       debugged with a debugger that swaps interrupt vectors during
  1162.       debugging.
  1163. Note:    the interrupt vector which is to be reflected is set at installation
  1164.       time and cannot be changed
  1165. --------N-69FF-------------------------------
  1166. INT 69 - 10NET v5.0 - SYSSVC.COM - SIGNAL SYSTEM ERROR
  1167.     AH = FFh
  1168. Return: never???
  1169. Notes:    displays "System Error" message and register dump, then halts system
  1170.     INT 69 is the default, and may be set to any interrupt from 60h-7Fh;
  1171.       the signature "SYSV" immediately before the interrupt handler serves
  1172.       as the installation check
  1173. SeeAlso: AX=4001h,AH=49h
  1174. --------U-6A---------------------------------
  1175. INT 6A - OPTHELP.COM
  1176. Program: OPTHELP is an optionally-resident help system for SLR Systems's OPTASM
  1177.       assembler
  1178. Note:    may be configured to use any interrupt from 60h to 7Fh (default 6Ah)
  1179. --------N-6A---------------------------------
  1180. INT 6A - DECnet DOS - LOCAL AREA TRANSPORT PROGRAM
  1181. Note:    the installation check consists of testing for a signature area
  1182.       immediately preceding the interrupt handler
  1183. SeeAlso: INT 6B"DECnet",INT 6D"DECnet"
  1184. Index:    installation check;DECnet DOS Local Area Transport
  1185.  
  1186. Format of signature area:
  1187. Offset    Size    Description
  1188.  -5    BYTE    major version number
  1189.  -4    BYTE    minor version number
  1190.  -3   3 BYTEs    signature (ASCII "LAT")
  1191. --------N-6A0000-----------------------------
  1192. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - INSTALLATION CHECK
  1193.     AX = 0000h
  1194. Return: AX = 4357h ('CW')
  1195. Program: Super-TCP is a TCP/IP protocol stack by Frontier Technologies Corp.
  1196. Note:    an alternate installation check is to test for the ASCIZ signature
  1197.       "FTC Super-TCP" three bytes past the interrupt handler
  1198. SeeAlso: AX=0001h,AX=0002h,AX=000Fh,AX=0010h,INT 61"PCTCP",INT 62"BW-TCP"
  1199. --------N-6A0001-----------------------------
  1200. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ???
  1201.     AX = 0001h
  1202.     BH = function number
  1203.         01h ???
  1204.         DS:SI -> ??? 24-byte record1 (see below)
  1205.         ES:DI -> buffer containing ???
  1206.         02h ???
  1207.         DS:SI -> ??? 18-byte record2 (see below)
  1208.         ES:DI -> buffer containing ???
  1209.         04h ???
  1210.         BL = subfunction
  1211.             01h
  1212.             DS:SI -> ??? 28-byte record3 (see below)
  1213.             ES:DI -> buffer containing ???
  1214.             02h
  1215.             DS:SI -> ??? 28-byte record3 (see below)
  1216.             ES:DI -> buffer containing ???
  1217.             03h
  1218.             DS:SI -> ??? 28-byte record3 (see below)
  1219.             else Return: AX = 0005h
  1220.         05h ???
  1221.         DS:SI -> ??? 20-byte record4 (see below)
  1222.         ES:DI -> buffer containing ???
  1223.         06h ???
  1224.         BL = subfunction
  1225.             01h
  1226.             DS:SI -> ??? 40-byte record5 (see below)
  1227.             02h
  1228.             DS:SI -> ??? 20-byte record6 (see below)
  1229.             ES:DI -> ???
  1230.             03h
  1231.             DS:SI -> ??? 20-byte record6 (see below)
  1232.             04h
  1233.             DS:SI -> ??? 46-byte record7 (see below)
  1234.             else Return: AX = 0005h
  1235.         11h ???
  1236.         DS:SI -> ??? 28-byte record8 (see below)
  1237.         ES:DI -> ???
  1238. Return: AX = function status
  1239.         0000h successful
  1240.         0005h unsupported function
  1241.         000Ah out of memory
  1242. SeeAlso: AX=0000h
  1243.  
  1244. Format of record1:
  1245. Offset    Size    Description
  1246.  00h  4 BYTEs    ???
  1247.  04h    WORD    size of ES:DI buffer
  1248.  06h 18 BYTEs    ???
  1249.  
  1250. Format of record2:
  1251. Offset    Size    Description
  1252.  00h  4 BYTEs    ???
  1253.  04h    WORD    size of ES:DI buffer
  1254.  06h 12 BYTEs    ???
  1255.  
  1256. Format of record3:
  1257. Offset    Size    Description
  1258.  00h  2 BYTEs    ???
  1259.  02h    WORD    ???
  1260.  04h    WORD    size of ES:DI buffer
  1261.  06h    WORD    ???
  1262.  08h    WORD    operation number (for function 0401h)
  1263.  0Ah    DWORD    -> ???
  1264.  0Eh    WORD    (return) ???
  1265.  10h 12 BYTEs    ???
  1266.  
  1267. Format of record4:
  1268. Offset    Size    Description
  1269.  00h  4 BYTEs    ???
  1270.  04h    WORD    size of ES:DI buffer
  1271.  06h 14 BYTEs    ???
  1272.  
  1273. Format of record5:
  1274. Offset    Size    Description
  1275.  00h    BYTE    operation??? (00h-07h)
  1276.  01h    BYTE    ???
  1277.  02h    WORD    (return) ???
  1278.  04h    DWORD    -> ???
  1279.  08h  4 BYTEs    ???
  1280.  0Ch    DWORD    -> ??? or 0000h:0000h
  1281.  10h 16 BYTEs    ???
  1282.  20h    DWORD    ???
  1283.  24h  4 BYTEs    ???
  1284.  
  1285. Format of record6:
  1286. Offset    Size    Description
  1287.  00h  4 BYTEs    ???
  1288.  04h    WORD    size of ES:DI buffer
  1289.  06h 14 BYTEs    ???
  1290.  
  1291. Format of record7:
  1292. Offset    Size    Description
  1293.  00h    WORD    ???
  1294.  02h    WORD    ???
  1295.  04h    WORD    ???
  1296.  06h 40 BYTEs    ???
  1297.  
  1298. Format of record8:
  1299. Offset    Size    Description
  1300.  00h  4 BYTEs    ???
  1301.  04h    WORD    size of ES:DI buffer
  1302.  06h  6 BYTEs    ???
  1303.  0Ch    WORD    (return) ???
  1304.  0Eh    WORD    operation??? (01h-03h)
  1305.  10h 12 BYTEs    ???
  1306. --------N-6A0002-----------------------------
  1307. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ???
  1308.     AX = 0002h
  1309.     BX = ??? (zero/nonzero)
  1310.     CX = ??? identifier (see AX=0004h)
  1311.     DS:SI -> 40-byte buffer for ??? or 0000h:0000h
  1312.     ES:DI -> buffer for ??? or 0000h:0000h
  1313. Return: AX = 0000h (successful) ???
  1314.     BL = ???
  1315.     BH = ???
  1316.     CX = ???
  1317.     DX = ???
  1318. --------N-6A0003-----------------------------
  1319. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - GET ??? DATA AREA
  1320.     AX = 0003h
  1321. Return: CX:DX -> data area (see below)
  1322.  
  1323. Format of data area:
  1324. Offset    Size    Description
  1325.  00h  2 BYTEs    ???
  1326.  02h    DWORD    original INT 6A vector
  1327.  06h  2 BYTEs    ???
  1328.  08h 96 BYTEs    array of 16 6-byte ???
  1329.  68h    WORD    number of elements of above array in use
  1330.  6Ah    WORD    ???
  1331.     ???
  1332. --------N-6A0004-----------------------------
  1333. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ALLOCATE ???
  1334.     AX = 0004h
  1335.     CX = size in ???
  1336. Return: AX = 0000h (successful)
  1337.     CX = DX = ???
  1338. SeeAlso: AX=0005h,AX=000Fh
  1339. --------N-6A0005-----------------------------
  1340. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - FREE/CLOSE ???
  1341.     AX = 0005h
  1342.     CX = ??? identifier (from AX=0004h)
  1343. Return: AX = status (0000h successful, FFFFh failed)
  1344. SeeAlso: AX=0004h,AX=000Fh
  1345. --------N-6A000F-----------------------------
  1346. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - FREE/CLOSE ALL ???
  1347.     AX = 000Fh
  1348. Return: AX = 0000h (successful)
  1349. SeeAlso: AX=0000h,AX=0004h,AX=0005h
  1350. --------N-6A0010-----------------------------
  1351. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - UNINSTALL
  1352.     AX = 0010h
  1353. Return: AX = status
  1354.         0000h successful
  1355.         0002h can't uninstall, interrupt vector hooked by another program
  1356. Program: Super-TCP is a TCP/IP protocol stack by Frontier Technologies Corp.
  1357. Note:    if AX is not one of the values listed here on entry, Super-TCP
  1358.       returns AX=FFFEh
  1359. SeeAlso: AX=0000h
  1360. --------N-6A01--DHFF-------------------------
  1361. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BYTE
  1362.     AH = 01h
  1363.     DH = FFh
  1364.     AL = character
  1365.     DL = handle
  1366. Return: AH >= 80h on error
  1367. SeeAlso: AH=02h
  1368. --------N-6A02--DHFF-------------------------
  1369. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - READ BYTE
  1370.     AH = 02h
  1371.     DH = FFh
  1372.     DL = handle
  1373. Return: AH < 80h if successful
  1374.         AL = character
  1375.     AH >= 80h on error
  1376. SeeAlso: AH=01h
  1377. --------N-6A03--DHFF-------------------------
  1378. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - STATUS
  1379.     AH = 03h
  1380.     DH = FFh
  1381.     DL = handle
  1382. Return: AH = status flags (see below)
  1383.  
  1384. Bitfields for status flags:
  1385.  bit 5    transmit buffer empty
  1386.  bit 3    session in start state
  1387.  bit 2    session not active
  1388.  bit 1    unable to queue transmit data
  1389.  bit 0    receive data available
  1390. --------N-6AD0--DHFF-------------------------
  1391. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - OPEN SESSION
  1392.     AH = D0h
  1393.     DH = FFh
  1394.     AL = FFh no password
  1395.        = 0Fh password at ES:DI
  1396.     ES:BX -> LAT session control block (see below)
  1397.     ES:DI -> 16-byte blank-padded password
  1398. Return: AH = 00h success
  1399.         DL = handle
  1400. SeeAlso: AX=D000h
  1401.  
  1402. Format of LAT Session Control Block:
  1403. Offset    Size    Description
  1404.  00h 18 BYTEs    service name
  1405.  12h 18 BYTEs    node name (future use)
  1406.  24h 18 BYTEs    port name (future use)
  1407.  36h    DWORD    -> session stopped post routine
  1408.  3Ah    DWORD    -> service table overflow post routine
  1409.  3Eh    DWORD    -> transmit post routine
  1410.  42h    DWORD    -> receive post routine
  1411.  46h    WORD    session status
  1412.         04h circuit failure
  1413.         08h stop slot received
  1414.  48h    WORD    slot state (LAT driver use)
  1415.  4Ah    WORD    local credits (LAT driver use)
  1416.  4Ch    DWORD    -> VCB (LAT driver use)
  1417.  50h    WORD    backward slot (LAT driver use)
  1418.  52h    WORD    forward slot (LAT driver use)
  1419.  54h    WORD    remote slot ID (LAT driver use)
  1420.  56h    WORD    local slot ID (LAT driver use)
  1421.  58h    WORD    slot byte count (LAT driver use)
  1422.  5Ah    BYTE    remote credits (LAT driver use)
  1423.  5Bh 255 BYTEs    transmitted data slot
  1424. 15Ah    BYTE    number of receive data slots (4 recommended)
  1425. 15Bh    BYTE    number of occupied slots
  1426. 15Ch    BYTE    index of next receive slot to use
  1427. 15Dh    BYTE    index of current receive slot
  1428. 15Eh    WORD    pointer to first received character
  1429. 160h  N WORDs    pointers to receive slots (buffers); each is 259 bytes
  1430. Note:    set post routines to 0000h:0000h if polled operation will be used
  1431. --------N-6AD000DHFF-------------------------
  1432. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - CLOSE SESSION
  1433.     AX = D000h
  1434.     DH = FFh
  1435.     DL = handle
  1436. Return: AX = 0000h successful
  1437.        = 0001h no such session
  1438.        = 0002h session not running, try again later
  1439. SeeAlso: AH=D0h
  1440. --------N-6AD100DHFF-------------------------
  1441. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BREAK
  1442.     AX = D100h
  1443.     DH = FFh
  1444.     DL = handle
  1445. Return: AX = 0000h if successful
  1446.     AH bit 7 set if unable to send break
  1447. --------N-6AD300DHFF-------------------------
  1448. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - RESET LAT COUNTERS
  1449.     AX = D300h
  1450.     DH = FFh
  1451. SeeAlso: AX=D400h
  1452. --------N-6AD400DHFF-------------------------
  1453. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - COPY LAT COUNTERS
  1454.     AX = D400h
  1455.     DH = FFh
  1456.     CX = buffer size
  1457.     ES:BX -> buffer for LAT counters
  1458. Return: AX = 0000h counters copied into buffer
  1459.        = FFFFh buffer too small
  1460. SeeAlso: AX=D300h
  1461. --------N-6AD500DHFF-------------------------
  1462. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - GET NEXT LAT SERVICE NAME
  1463.     AX = D500h
  1464.     DH = FFh
  1465.     ES:BX -> 17-byte buffer for name
  1466. Return: AH = 00h if successful
  1467.        ES:BX buffer filled
  1468.     AX = FFFFh if end of table or no name available
  1469. Notes:    use this function to get the names of the hosts on the network
  1470.     successive calls are necessary to get all names
  1471. SeeAlso: AX=D600h
  1472. --------N-6AD600DHFF-------------------------
  1473. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - LAT SERVICE TABLE RESET
  1474.     AX = D600h
  1475.     DH = FFh
  1476. Return: AX = number of service table entries
  1477.     BX = 0000h service table has not overflowed
  1478.        = FFFFh service table has overflowed
  1479. SeeAlso: AX=D500h
  1480. --------N-6B---------------------------------
  1481. INT 6B - DECnet DOS - PORT DRIVER
  1482. Note:    the installation check consists of testing for a signature area
  1483.       immediately preceding the interrupt handler
  1484. SeeAlso: INT 6A"DECnet",INT 6C"DECnet"
  1485. Index:    installation check;DECnet DOS Port Driver
  1486.  
  1487. Format of signature area:
  1488. Offset    Size    Description
  1489.  -5    BYTE    major version number
  1490.  -4    BYTE    minor version number
  1491.  -3   3 BYTEs    signature (ASCII "PDV")
  1492. --------S-6B0000-----------------------------
  1493. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED WRITE
  1494.     AX = 0000h
  1495.     CX = length
  1496.     ES:BX -> buffer
  1497. Return: CX = number of bytes written
  1498. Program: NASI is Novell's NetWare Asynchronous Services Interface which runs
  1499.       on workstations; NACS is the NetWare Asynchronous Communications
  1500.       Services module which runs on servers
  1501. Note:    also supported by TelAPI and NPC NCSI; for TelAPI, nonzero values in
  1502.       AL specify a connection ID
  1503. SeeAlso: AX=0100h,AH=18h,INT 14/AH=19h,INT 14/AH=E3h
  1504. --------S-6B0100-----------------------------
  1505. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED READ
  1506.     AX = 0100h
  1507.     CX = length of buffer
  1508.     ES:BX -> buffer
  1509. Return: CX = number of bytes read
  1510. Note:    also supported by TelAPI and NPC NCSI; for TelAPI, nonzero values in
  1511.       AL specify a connection ID
  1512. SeeAlso: AX=0000h,AH=19h,INT 14/AH=18h,INT 14/AH=E2h,INT 14/AX=FF02h
  1513. --------S-6B02-------------------------------
  1514. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - INSTALL CHECK
  1515.     AH = 02h
  1516.     AL nonzero
  1517. Return: AL = 00h if present and OK
  1518. Note:    this function is also supported by TelAPI and NPC NCSI
  1519. SeeAlso: AX=0700h
  1520. --------S-6B0600-----------------------------
  1521. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - CONTROL
  1522.     AX = 0600h
  1523.     CX = command
  1524.         02h send break
  1525.         04h disconnect
  1526.         06h hold
  1527. Return: CF clear if successful
  1528.         AL = 00h
  1529.     CF set on error
  1530.         AX < 0
  1531. Note:    this function is also supported by TelAPI and NPC NCSI
  1532. --------S-6B0700-----------------------------
  1533. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - GET STATUS
  1534.     AX = 0700h
  1535. Return: CH <> 00h if connection active
  1536. Notes:    this function is also supported by TelAPI and NPC NCSI
  1537.     Novell TelAPI returns CX=FF01h and CF clear
  1538. SeeAlso: AH=02h,AH=10h
  1539. --------N-6B08-------------------------------
  1540. INT 6B - TelAPI - ???
  1541.     AH = 08h
  1542. Return: CF clear
  1543.         AL = 00h
  1544.         CX = 0000h
  1545. Note:    this function also clears ??? flag
  1546. SeeAlso: INT 14/AX=FF00h
  1547. --------S-6B10-------------------------------
  1548. INT 6B - NPC NCSI EXTENDED SERIAL I/O - GET STATUS
  1549.     AH = 10h
  1550.     AL = connection ID (Novell TELAPI.EXE)
  1551.     CX = ???
  1552. Return: CF clear if successful
  1553.         CL = ???
  1554.         CH = ???
  1555.     CF set on error
  1556.     ???
  1557. Note:    this function is also supported by TelAPI
  1558. SeeAlso: AX=0700h,AH=12h,AH=1Fh
  1559. --------S-6B11-------------------------------
  1560. INT 6B - NPC NCSI EXTENDED SERIAL I/O - ALLOCATE A VIRTUAL CIRCUIT
  1561.     AH = 11h
  1562.     ???
  1563. Return: CF clear if successful
  1564.         AL = virtual circuit number??? (01h for Novell TELAPI.EXE)
  1565.         CL = ??? (01h for Novell TELAPI.EXE)
  1566.         CH = ??? (01h for Novell TELAPI.EXE)
  1567.     CF set on error
  1568.         ???
  1569. Note:    this function is also supported by TelAPI
  1570. SeeAlso: AH=12h,AH=15h,AH=16h,AH=17h,AH=18h
  1571. --------S-6B12-------------------------------
  1572. INT 6B - NPC NCSI EXTENDED SERIAL I/O - VIRTUAL CIRCUIT STATUS
  1573.     AH = 12h
  1574.     AL = virtual circuit number
  1575.     CL = ???
  1576.     ES:BX -> ???
  1577. Return: ???
  1578. Note:    this function is also supported by TelAPI
  1579. SeeAlso: AH=10h,AH=15h,AH=1Ah,AH=1Bh,AH=1Fh
  1580. --------S-6B13-------------------------------
  1581. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE REQUEST/REPLY SERVICE NAME
  1582.     AH = 13h
  1583.     AL = virtual circuit number
  1584.     CL = direction (00h get, nonzero set)
  1585.     ES:BX -> buffer for/containing service name
  1586. Return: ???
  1587. Note:    this function is also supported by TelAPI
  1588. SeeAlso: AH=14h,AH=15h
  1589. --------S-6B14-------------------------------
  1590. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE SERVICE ADDRESS
  1591.     AH = 14h
  1592.     AL = virtual circuit number
  1593.     ES:BX -> buffer for/containing service address
  1594. Return: ???
  1595. Note:    this function is also supported by TelAPI, which only supports
  1596.       retrieving the address
  1597. SeeAlso: AH=13h,AH=15h,AH=21h
  1598. --------S-6B15-------------------------------
  1599. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE VIRTUAL CIRCUIT CONFIG
  1600.     AH = 15h
  1601.     AL = virtual circuit number
  1602.     CL = direction (00h get, nonzero set)
  1603.     ES:BX -> buffer for/containing virtual circuit configuration
  1604. Return: ???
  1605. Note:    this function is also supported by TelAPI
  1606. SeeAlso: AH=13h,AH=14h
  1607. --------S-6B16-------------------------------
  1608. INT 6B - NPC NCSI EXTENDED SERIAL I/O - LOG AND/OR INITIALIZE VIRTUAL CIRCUIT
  1609.     AH = 16h
  1610.     ???
  1611. Return: CF clear if successful
  1612.         AL = virtual circuit number???
  1613.     CF set on error
  1614.         ???
  1615. Note:    this function is also supported by TelAPI, which always returns CF
  1616.       clear and AL=00h
  1617. SeeAlso: AH=11h,AH=12h,AH=17h
  1618. --------S-6B17-------------------------------
  1619. INT 6B - NPC NCSI EXTENDED SERIAL I/O - DISCONNECT A VIRTUAL CIRCUIT
  1620.     AH = 17h
  1621.     AL = virtual circuit number???
  1622. Return: CF clear if successful
  1623.     CF set on error
  1624.     ???
  1625. Note:    this function is also supported by TelAPI, which always returns CF
  1626.       clear and AL=00h
  1627. SeeAlso: AH=11h,AH=16h
  1628. --------S-6B18-------------------------------
  1629. INT 6B - NPC NCSI EXTENDED SERIAL I/O - WRITE DATA ON A VIRTUAL CIRCUIT
  1630.     AH = 18h
  1631.     AL = virtual circuit number
  1632.     ???
  1633. Return: CF clear if successful
  1634.     CF set on error
  1635.     ???
  1636. Note:    this function is also supported by TelAPI, which always returns CF
  1637.       clear and AL=30h
  1638. SeeAlso: AX=0000h,AH=12h,AH=19h
  1639. --------S-6B19-------------------------------
  1640. INT 6B - NPC NCSI EXTENDED SERIAL I/O - READ DATA ON A VIRTUAL CIRCUIT
  1641.     AH = 19h
  1642.     AL = virtual circuit number
  1643.     ???
  1644. Return: ???
  1645. Note:    this function is also supported by TelAPI
  1646. SeeAlso: AX=0100h,AH=12h,AH=18h
  1647. --------S-6B1A-------------------------------
  1648. INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE STATUS
  1649.     AH = 1Ah
  1650.     ???
  1651. Return: ???
  1652. SeeAlso: AH=12h,AH=1Bh
  1653. --------S-6B1B-------------------------------
  1654. INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT STATUS
  1655.     AH = 1Bh
  1656.     ???
  1657. Return: ???
  1658. SeeAlso: AH=12h,AH=1Ah
  1659. --------S-6B1C-------------------------------
  1660. INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE BUFFER CONTROL
  1661.     AH = 1Ch
  1662.     ???
  1663. Return: ???
  1664. SeeAlso: AH=1Dh,AH=1Eh
  1665. --------S-6B1D-------------------------------
  1666. INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT BUFFER CONTROL
  1667.     AH = 1Dh
  1668.     ???
  1669. Return: ???
  1670. SeeAlso: AH=1Ch,AH=1Eh
  1671. --------S-6B1E-------------------------------
  1672. INT 6B - NPC NCSI EXTENDED SERIAL I/O - ISSUE CONTROL REQUEST
  1673.     AH = 1Eh
  1674.     ???
  1675. Return: ???
  1676. SeeAlso: AH=1Ch,AH=1Dh
  1677. --------S-6B1F-------------------------------
  1678. INT 6B - NPC NCSI EXTENDED SERIAL I/O - EXTERNAL STATUS
  1679.     AH = 1Fh
  1680.     ???
  1681. Return: ???
  1682. SeeAlso: AH=10h,AH=12h
  1683. --------S-6B21-------------------------------
  1684. INT 6B - NPC NCSI EXTENDED SERIAL I/O - QUERY NAME SERVICE
  1685.     AH = 21h
  1686.     ???
  1687. Return: ???
  1688. SeeAlso: AH=14h
  1689. ----------6B6B-------------------------------
  1690. INT 6B - Tandy SCHOOLMATE PLUS - API
  1691.     AH = 6Bh
  1692.     AL = E0h to FFh
  1693. --------v-6B---------------------------------
  1694. INT 6B - VIRUS - "Saddam" - ORIGINAL INT 21h VECTOR
  1695. SeeAlso: INT 21/AX=FFFFh,INT 61"VIRUS",INT 70"VIRUS"
  1696. ----------6C---------------------------------
  1697. INT 6C - system resume vector (CONVERTIBLE)
  1698. ----------6C---------------------------------
  1699. INT 6C - DOS 3.2 Realtime Clock update
  1700. --------N-6C---------------------------------
  1701. INT 6C - DECnet DOS network scheduler
  1702. Notes:    the installation check consists of testing for a signature area
  1703.       immediately preceding the interrupt handler
  1704.     also supported by DEC Pathworks for DOS
  1705. SeeAlso: INT 6B"DECnet",INT 6D"DECnet",INT 6E"DECnet"
  1706. Index:    installation check;DECnet DOS scheduler
  1707.  
  1708. Format of signature area:
  1709. Offset    Size    Description
  1710.  -5    BYTE    major version number
  1711.  -4    BYTE    minor version number
  1712.  -3   3 BYTEs    signature (ASCII "SCH")
  1713. --------V-6D---------------------------------
  1714. INT 6D - VGA - internal
  1715. Note:    used by IBM, Paradise, Video7, and NCR
  1716. --------V-6D---------------------------------
  1717. INT 6D - ATI VGA Wonder - VIDEO BIOS ENTRY POINT
  1718.    points at the original INT 10 entry point set up by the ATI BIOS
  1719. SeeAlso: INT 10
  1720. --------V-6D---------------------------------
  1721. INT 6D - Trident SVGA - VIDEO BIOS HANDLER
  1722. Note:    the BIOS INT 10 handler on various Trident VGA cards consists merely
  1723.       of a call to INT 6D followed by an IRET.
  1724. --------N-6D---------------------------------
  1725. INT 6D - DECnet DOS (before 2.1) - DATA LINK LAYER PROGRAM
  1726.     AH = function
  1727.     ???
  1728. Return: ???
  1729. Note:    the installation check consists of testing for a signature area
  1730.       immediately preceding the interrupt handler
  1731. SeeAlso: INT 69/AH=0Ah,INT 6C"DECnet",INT 6E"DECnet"
  1732. Index:    installation check;DECnet DOS Data Link Layer
  1733.  
  1734. Format of signature area:
  1735. Offset    Size    Description
  1736.  -5    BYTE    major version number
  1737.  -4    BYTE    minor version number
  1738.  -3   3 BYTEs    signature (ASCII "SCH")
  1739. --------N-6E---------------------------------
  1740. INT 6E - DECnet DOS - DECnet NETWORK PROCESS API
  1741. Notes:    this is the main DECnet DOS access, and is described in Digital manual
  1742.       AA-EB46B-TV ("DECnet-DOS Programmer's Reference Manual")
  1743.     there is a signature/data area immediately prior to the interrupt
  1744.       handler which may be used as an installation check
  1745. Index:    installation check;DECnet DOS
  1746.  
  1747. Format of signature area:
  1748. Offset    Size    Description
  1749.  -5    BYTE    major version number
  1750.  -4    BYTE    minor version number
  1751.  -3   3 BYTEs    signature (ASCII "DNP")
  1752. --------N-6F---------------------------------
  1753. INT 6F - Novell NetWare - PCOX API (3270 PC terminal interface)
  1754.     AX = function
  1755.         0000h enter terminal mode
  1756.         Return: AX = status
  1757.                 0000h no action requested
  1758.                 0001h screen save
  1759.         0001h reset interface and set configuration parameters
  1760.         DX = bitfields
  1761.             bits 2-0: model number
  1762.             bits 4-3: I/O address
  1763.             bits 6-5: DMA channel
  1764.         Return: nothing
  1765.         0002h set display parameters
  1766.         DX = bitfields
  1767.             bits 1-0: OIA mode
  1768.             bits 4-2: monitor support
  1769.         Return: nothing
  1770.         0003h read status
  1771.         Return: AX = status word (see below)
  1772.         0004h read cursor position
  1773.         Return: AX = cursor position
  1774.         0005h get character from device buffer
  1775.         DX = cursor position
  1776.         Return: AH = type (00h data, 01h attribute)
  1777.             AL = data or attribute character
  1778.         0006h send character
  1779.         DH = type (00h ASCII, 01h extended code)
  1780.         DL = ASCII character or extended code
  1781.         Return: nothing
  1782.         0007h set timeout
  1783.         DX = timeout in seconds
  1784.         Return: nothing
  1785.         0008h wait for location to be modified
  1786.         DX = cursor position
  1787.         Return: AX = status (0000h modified, nonzero timeout)
  1788.         0009h NOP
  1789.         000Ah restore display
  1790.         Return: nothing
  1791.         000Bh update device buffer
  1792.         Return: AX = cursor positoin
  1793.         000Ch write string to add information area
  1794.         DS:DX -> string
  1795.         Return: nothing
  1796.         000Dh maintenance operations
  1797.         DX = maintenance operation code
  1798.         Return: AX = operation status
  1799.         000Eh get control program version
  1800.         Return: AH = release number (major version)
  1801.             AL = level number (minor version)
  1802.         000Fh get microcode version
  1803.         Return: AH = release number (major version)
  1804.             AL = level number (minor version)
  1805.         0010h save or display graphics
  1806.         BX = length of data buffer
  1807.         CX = subfunction request code
  1808.         DS:DX -> data buffer
  1809.         Return: AX = return code
  1810.             CX = length of PIF data
  1811.         0011h perform structured field operation
  1812.         CX = request number
  1813.         DS:DX -> parameter list
  1814.         Return: AX = status word (see below)
  1815.             CX = error number
  1816.         0012h set cursor position for direct write buffer
  1817.         DX = new cursor position
  1818.         Return: AX = status word (see below)
  1819.         0013h write direct to buffer
  1820.         DL = character to be written
  1821.         DH = translation option
  1822.         Return: AX = status word (see below)
  1823.         0014h write direct to buffer without echo
  1824.         DL = character to be written
  1825.         DH = translation option
  1826.         Return: AX = status word (see below)
  1827.         0015h set direct write string length
  1828.         DX = string value
  1829.         Return: nothing
  1830.         0016h write string direct to buffer
  1831.         DS:DX -> string
  1832.         Return: AX = status word (see below)
  1833.         0017h write string direct to buffer, untranslated
  1834.         DS:DX -> string
  1835.         Return: AX = status word (see below)
  1836.         0018h get direct-write cursor position
  1837.         Return: AX = cursor position
  1838.         0019h convert row/column to cursor position
  1839.         DH = display row (1-43)
  1840.         DL = display column (1-132)
  1841.         Return: AX = cursor position
  1842.         001Ah convert cursor position to row/column
  1843.         DX = cursor position
  1844.         Return: AH = display row
  1845.             AL = display column
  1846.         001Bh find next field
  1847.         DX = initial cursor position
  1848.         Return: AX = field cursor position
  1849.         001Ch find previous field
  1850.         DX = initial cursor position
  1851.         Return: AX = field cursor position
  1852.         001Dh find next unprotected field
  1853.         DX = initial cursor position
  1854.         Return: AX = field cursor position
  1855.         001Eh find previous unprotected field
  1856.         DX = initial cursor position
  1857.         Return: AX = field cursor position
  1858.         001Fh find next protected field
  1859.         DX = initial cursor position
  1860.         Return: AX = field cursor position
  1861.         0020h find previous protected field
  1862.         DX = initial cursor position
  1863.         Return: AX = field cursor position
  1864.         0021h masked search forward
  1865.         DH = mask
  1866.         DL = search pattern
  1867.         Return: AX = cursor position or 0000h
  1868.         0022h masked search backward
  1869.         DH = mask
  1870.         DL = search pattern
  1871.         Return: AX = cursor position or 0FFFh
  1872.         0023h find field length
  1873.         DX = cursor position
  1874.         Return: AX = field length
  1875.         0024h read field
  1876.         DS:DX -> buffer for field contents
  1877.         Return: AX = status word (see below)
  1878.         0025h read screen
  1879.         DS:DX -> buffer for screen contents
  1880.         Return: AX = status word (see below)
  1881.         0026h read buffer untranslated
  1882.         DX = cursor position
  1883.         Return: AX = buffer code
  1884.             CX:BX -> 3278/79 device buffer image
  1885.         0027h enable/disable keyboard
  1886.         DL = new state of keyboard breaks (00h enabled, 01h disabled)
  1887.         Return: nothing
  1888.         0028h select host session
  1889.         DL = session short name
  1890.         Return: AX = session information
  1891.         0029h retrieve host session name
  1892.         AX = short name (DFT) or 0000h (not available, CUT mode)
  1893.         002Ah get current device buffer size
  1894.         Return: AX = device buffer size
  1895.             CX = segment of EAB
  1896.         002Bh arm modified location trigger
  1897.         DX = cursor position
  1898.         Return: AX = status (0000h not available, 0001h successful)
  1899.  
  1900. Bitfields for status word:
  1901.  bits 0,1 cursor type
  1902.  bit 2    cursor inhibited
  1903.  bit 3    display inhibited
  1904.  bit 4    feature step inhibited
  1905.  bit 5    480-character format code
  1906.  bits 6,7 unused
  1907.  bits 8-10 model number (2-5)
  1908.  bit 11    unit has been reset by controller (bit cleared after status returned)
  1909.  bit 12    buffer has been written into (bit cleared after status returned)
  1910.  bit 13    alarm has been sounded (bit cleared after status returned)
  1911.  bits 14-15 monitor type (01 mono, 10 color, 11 hybrid)
  1912. --------N-6F00-------------------------------
  1913. INT 6F - 10NET - LOGIN
  1914.     AH = 00h
  1915.     DS:DX -> login record (see below)
  1916. Return: CL = security level
  1917.     AX = status (see below)
  1918. SeeAlso: AH=01h,AH=80h,INT 21/AX=4402h"10MEMMGR"
  1919.  
  1920. Format of login record:
  1921. Offset    Size    Description
  1922.  00h  8 BYTEs    user name
  1923.  08h  8 BYTEs    password
  1924.  10h 12 BYTEs    name of SuperStation
  1925.  
  1926. Values for status:
  1927.  0000h    successful
  1928.  01FFh    "RTO_NERR" transmit interrupt lost (time out on response)
  1929.  02FFh    "NET_NERR" network (hardware) error
  1930.  03FFh    "PAS_NERR" invalid password
  1931.  04FFh    "LRN_NERR" local resource not available
  1932.  05FFh    "SRN_NERR" server resource not available
  1933.  06FFh    "LNM_NERR" already logged in under different name
  1934.  07FFh    "LSF_NERR" login security failure (node)
  1935.  08FFh    "NLI_NERR" not logged in
  1936.  09FFh    "DIVZ_NERR" position calc error
  1937.  0AFFh    "NT1_NERR" receive subfunction not = send subfunction (i.e. read,write)
  1938.  0BFFh    "RFNC_NERR" request function not in range
  1939.  0CFFh    "NSFH_NERR" no more server file handle entries left
  1940.  0DFFh    "NFTAB_NERR" no more shared file table entries left
  1941.  0EFFh    "NUFH_NERR" no more user file handle entries left
  1942.  0FFFh    "CHAT_NERR" chat permit not on
  1943.  10FFh    "NSRV_NERR" not a server on request
  1944.  11FFh    "NOBD_NERR" no transporter board error
  1945.  12FFh    "STO_NERR" time out on send
  1946.  13FFh    "INF_NERR" item not found (spool item not on queue)
  1947.  14FFh    "DACS_NERR" DOS access incompatible
  1948.  15FFh    "RLOCK_NERR" record already locked
  1949.  16FFh    "IVP_NERR" invalid parameter
  1950.  17FFh    "RLTO_NERR" record lock time out error
  1951.  18FFh    "CSPL_NERR" currently spooling to named device
  1952.  19FFh    "DRP_NERR" dropped receive message (throttle)
  1953.  1AFFh    "SOPV_NERR" open sharing violation
  1954.  1BFFh    "NTUF_NERR" no more tuf entries left
  1955.  1CFFh    "NOWN_NERR" not file owner on open
  1956.  1DFFh    "RSEC_NERR" read security not passed
  1957.  1EFFh    "WSEC_NERR" write security not passed
  1958.  1FFFh    "GSEC_NERR" group security not passed
  1959.  20FFh    "SEC1_NERR" security file failure
  1960.  21FFh    "ACT1_NERR" activity file failure
  1961.  22FFh    "SPL1_NERR" spool control file failure
  1962.  23FFh    "NMT_NERR" device not mounted (spooling)
  1963.  24FFh    "RSPL_NERR" spool file has not been terminated
  1964.  25FFh    "DNSH_NERR" device not mounted or is not being shared
  1965.  26FFh    "DUP_NERR" duplicate node ID
  1966.  27FFh    "FNF_NERR" file not found error
  1967.  28FFh    "NMF_NERR" no more files
  1968.  29FFh    "UN_NERR" unknown internal system error
  1969.  2AFFh    "QCP_NERR" print queue is full or corrupted
  1970.  2BFFh    "IFNC_NERR" invalid function
  1971.  2CFFh    "IVH_NERR" invalid handle
  1972.  2DFFh    "TOF_NERR" too many files opened
  1973.  2EFFh    "PNF_NERR" path not found
  1974.  2FFFh    "SACT_NERR" named file is active
  1975. ---10NET v5.0+ ---
  1976.  30FFh    "NAK_NERR" received NAK on send (destination out of buffers)
  1977.  31FFh    "RENT_NERR" reentrancy in driver F_SEND
  1978.  32FFh    "RECV_NERR" driver could not be put in receive mode
  1979.  33FFh    "NRLT_NERR" no more RLTAB entries left
  1980.  34FFh    "DIAL_NERR" function requires an unsupported dialect
  1981.  35FFh    "IVD_NERR" invalid device
  1982.  36FFh    "NALV_NERR" netname access level violated
  1983.  37FFh    "NPIDNF_NERR" network path not found
  1984.  38FFh    "SP_NERR" server is paused
  1985.  39FFh    "TMNM_NERR" too many remote user names
  1986.  3AFFh    "DUPD_NERR" duplicate network device
  1987.  3BFFh    "DIU_NERR" shared device in use, can't delete
  1988.  3CFFh    "NNWD_NERR" network name was deleted
  1989.  3DFFh    "NPFS_NERR" not enough space for print file
  1990.  3EFFh    "NNNF_NERR" network name not found (can't find the call name)
  1991.  3FFFh    "NB_NERR" network busy
  1992.  40FFh    "NDNLE_NERR" network device no longer exists
  1993.  41FFh    "NBCLE_NERR" NetBIOS command limit exceeded
  1994.  42FFh    "FINT24_NERR" Fail on INT 24h
  1995.  43FFh    "PEXP_NERR" password expired
  1996.  44FFh    "NPUP_NERR" new password error
  1997.  45FFh    "MAXS_NERR" maximum allowed disk space exceeded
  1998.  46FFh    "TDOW_NERR" time-of-day/day-of-week error
  1999. Index:    error codes;10Net|10Net;error codes
  2000. --------N-6F01-------------------------------
  2001. INT 6F - 10NET - LOGOFF
  2002.     AH = 01h
  2003.     DS:DX -> superstation ID or nulls (12 bytes)
  2004. Return: CX = number of files closed
  2005.     AX = status (see also AH=00h)
  2006.         08FFh superstation ID not already logged in
  2007. SeeAlso: AH=00h,AH=81h
  2008. --------N-6F02-------------------------------
  2009. INT 6F - 10NET - STATUS OF NODE
  2010.     AH = 02h
  2011.     DS:DX -> 512-byte status record (see below)
  2012. Return:    CF clear if successful
  2013.     CF set on error
  2014.         AX = error code (see AH=00h)
  2015. SeeAlso: INT 21/AX=5E01h"10NET"
  2016.  
  2017. Format of node status record:
  2018. Offset    Size    Description
  2019.  00h  8 BYTEs    user name (0 if none)
  2020.  08h    BYTE    station type
  2021.         00h workstation
  2022.         01h superstation
  2023.         02h gateway station
  2024.         03h gateway active
  2025.         04h logged into multiple superstations
  2026.         05h reserved
  2027.  09h 24 BYTEs    list of superstations logged into more than one superstation
  2028.  21h 12 BYTEs    node ID
  2029.  2Dh    WORD    message count for this station (send for user node, receive for
  2030.         superstations)
  2031. ---for superstations only---
  2032.  2Fh    WORD    drives allocated (bit 0=A:, bit 1=B:,...)
  2033.  31h    BYTE    user service flags (see below)
  2034.  32h    BYTE    printers allocated (bit 0=LPT1,...)
  2035.  33h    BYTE    number of unprinted spool files
  2036.  34h    BYTE    number of opened files
  2037.  35h    BYTE    number of logged on nodes
  2038.  36h    BYTE    primary drive (1=A:)
  2039.  37h    BYTE    reserved
  2040.  38h  N BYTEs    list of logged on node IDs (each 12 bytes, max 37 IDs)
  2041. 1F4h  3 BYTEs    time: sec/min/hrs
  2042. 1F7h  3 BYTEs    date: day/mon/year-1980
  2043.  
  2044. Bitfields for user service flags:
  2045.  bit 7    gate
  2046.  bit 6    print permit on
  2047.  bit 4    SUBMIT is on
  2048.  bit 3    mail waiting for node
  2049.  bit 2    calendar waiting for you
  2050.  bit 1    news waiting for you
  2051.  bit 0    mail waiting for you
  2052. --------W-6F0204-----------------------------
  2053. INT 6F C - MS Windows 3.0 - DOS APPLICATION SWITCH HOOK
  2054.     AX = 0204h
  2055. Return: AX = status
  2056.         0000h switch is allowed
  2057.         other switch not allowed
  2058. Note:    intercepting this call will allow a DOS application to ensure that
  2059.       Windows will not switch away from it.
  2060. --------N-6F03-------------------------------
  2061. INT 6F - 10NET - GET ADDRESS OF CONFIGURATION TABLE
  2062.     AH = 03h
  2063.     DS:DI -> node ID (optional)
  2064. Return: ES:BX -> configuration table
  2065. SeeAlso: AH=13h,INT 21/AX=5E01h"10NET"
  2066.  
  2067. Format of configuration table:
  2068. Offset    Size    Description
  2069. -41    WORD    local device table address
  2070. -39    WORD    extended network error mapping table address
  2071. -37    WORD    shared device table address
  2072. -35    WORD    mounted device table address
  2073. -33    BYTE    receive buffer counter
  2074. -32    BYTE    collect buffer counter
  2075. -31    WORD    TUF address
  2076. -29    BYTE    enable flag
  2077. -28    BYTE    FCB keep flag
  2078. -27    WORD    reserved
  2079. ---up to here, 10NET v3.3---
  2080. -25    WORD    count of dropped Send6F
  2081. -23    WORD    buffer start address
  2082. -21    WORD    comm driver base address
  2083. -19    WORD    send/receive retry count
  2084. -17    BYTE    number of 550ms loops before timeout
  2085. -16    WORD    UFH address
  2086. -14    WORD    CDIR address
  2087. -12    WORD    LTAB address
  2088. -10    WORD    SFH address
  2089. -8    WORD    FTAB address
  2090. -6    WORD    RLTAB address
  2091. -4    WORD    SMI address
  2092. -2    WORD    NTAB address
  2093.  00h    WORD    address of first CT_DRV
  2094.  02h    BYTE    number of DRV entries
  2095.  03h  8 BYTEs    login name
  2096.  0Bh 12 BYTEs    node ID (blank-padded)
  2097.  17h  6 BYTEs    node address
  2098.  1Dh    BYTE    flag
  2099.  1Eh    BYTE    CT_CFLG (chat permit)
  2100.         bit 1: sound bell
  2101.         bit 0: CHAT permit
  2102.  1Fh    BYTE    CT_PSFLG
  2103.         bit 5: PRINT permit
  2104.         bit 4: KB initiated
  2105.         bit 3: CHAT called FOXPTRM
  2106.         bit 2: SUBMIT active
  2107.         bit 1: SUBMIT received
  2108.         bit 0: SUBMIT permit
  2109.  20h    BYTE    in 10Net flag
  2110.  21h    WORD    receive message count
  2111.  23h    WORD    send message count
  2112.  25h    WORD    retry count
  2113.  27h    WORD    failed count
  2114.  29h    WORD    driver errors
  2115.  2Bh    WORD    dropped responses/CHATs
  2116.  2Dh  9 BYTEs    LIST ID/NTAB address (3 entries--LPT1-3)
  2117.  36h  6 BYTEs    AUX ID/NTAB address (2 entries--COM1-2)
  2118.  3Ch    BYTE    active CB channel
  2119.  3Dh    BYTE    received 6F messages on queue
  2120.  3Eh  9 BYTEs    activity counters for channels 1-9
  2121. ---beyond here, 10NET v3.3---
  2122.  47h    BYTE    bit 0: RS232 gate
  2123.         bit 1: Send6F gate (user set)
  2124.  48h    DWORD    pointer into gate (user set)
  2125.  4Ch    DWORD    pointer into 10Net send
  2126.  50h  N WORDs    addresses of timer blocks
  2127. --------N-6F04-------------------------------
  2128. INT 6F - 10NET - SEND
  2129.     AH = 04h
  2130.     DS:BX -> send record (see below)
  2131.     DS:DX -> data (max 1024 bytes)
  2132. Return:    CF clear if successful
  2133.     CF set on error
  2134.         AX = error code (see AH=00h)
  2135. SeeAlso: AH=05h,AH=09h,AH=0Ah
  2136.  
  2137. Format of send record:
  2138. Offset    Size    Description
  2139.  00h 12 BYTEs    receiving node's ID
  2140.         if first byte has high-order bit set, message is directed to
  2141.           the CT_RGATE vector at the receiver
  2142.         if second byte is 00h, first byte is taken as a CB
  2143.           channel number and delivered to all nodes on same channel
  2144.  0Ch    WORD     length of data at DX
  2145. --------N-6F05-------------------------------
  2146. INT 6F - 10NET - RECEIVE
  2147.     AH = 05h
  2148.     CX = number of seconds before timeout
  2149.     DS:DX -> receive buffer (see below)
  2150. Return:    CF clear if successful
  2151.         AH = FEh if dequeued message is a CB message
  2152.     CF set on error
  2153.         AX = error code (see AH=00h)
  2154. SeeAlso: AH=04h
  2155.  
  2156. Format of receive buffer:
  2157. Offset    Size    Description
  2158.  00h 12 BYTEs    sending node's ID
  2159.  0Ch    WORD    length of message
  2160.  0Eh  N BYTEs    message (maximum 1024 bytes)
  2161. --------N-6F07-------------------------------
  2162. INT 6F - 10NET - LOCK HANDLE
  2163.     AH = 07h
  2164.     BX = file handle
  2165.     CX:DX = starting offset in file
  2166.     SI = record length
  2167. Return:    CF clear if successful
  2168.     CF set on error
  2169.         AX = error code (see also AH=00h)
  2170.         0002h file not found
  2171. SeeAlso: AH=08h,AH=0Fh,INT 21/AH=5Ch
  2172. --------N-6F08-------------------------------
  2173. INT 6F - 10NET - UNLOCK HANDLE
  2174.     AH = 08h
  2175.     BX = file handle
  2176.     AL = mode
  2177.         00h unlock all
  2178.         01h unlock record at CX:DX
  2179. Return:    CF clear if successful
  2180.     CF set on error
  2181.         AX = error code (see also AH=00h)
  2182.         0002h file not found
  2183. SeeAlso: AH=07h,AH=0Fh,INT 21/AH=5Ch
  2184. --------N-6F09-------------------------------
  2185. INT 6F - 10NET - SUBMIT
  2186.     AH = 09h
  2187.     DS:BX -> submit record (see below)
  2188. SeeAlso: AH=04h
  2189.  
  2190. Format of submit record:
  2191. Offset    Size    Description
  2192.  00h 12 BYTEs    destination node ID (must be logged in)
  2193.  0Ch    WORD    length+2 of following 'command line' text
  2194.  0Eh  N BYTEs    command line text (<=100 bytes), system adds CR
  2195. --------N-6F0A-------------------------------
  2196. INT 6F - 10NET - CHAT
  2197.     AH = 0Ah
  2198.     DS:BX -> control parameters (see below)
  2199.     DS:DX -> chat message (see below)
  2200. SeeAlso: AH=04h,AH=8Ah
  2201.  
  2202. Format of control parameters:
  2203. Offset    Size    Description
  2204.  00h  8 BYTEs    sender ID, defaults to node's userID if nulls
  2205.  08h  8 BYTEs    destination user ID, 'EVERYONE' may be used
  2206.  10h 12 BYTEs    destination node ID
  2207.  
  2208. Format of chat message:
  2209. Offset    Size    Description
  2210.  00h    WORD    length+2 of following text
  2211.  02h  N BYTEs    text, max 101 bytes
  2212. --------N-6F0B-------------------------------
  2213. INT 6F - 10NET - LOCK SEMAPHORE, RETURN IMMEDIATELY
  2214.     AH = 0Bh
  2215.     AL = drive number or 0
  2216.     ES:SI = Ethernet address or 0
  2217.     DS:BX -> 31-byte ASCIZ semaphore name
  2218. Return: AL = status (see below)
  2219. Note:    same as INT 60/AH=12h
  2220. SeeAlso: AH=0Ch,INT 60/AH=12h
  2221.  
  2222. Values for status:
  2223.  00h    successful
  2224.  01h    semaphore currently locked
  2225.  02h    server not responding
  2226.  03h    invalid semaphore name
  2227.  04h    semaphore list is full
  2228.  05h    invalid drive ID
  2229.  06h    invalid Ethernet address
  2230.  07h    not logged in
  2231.  08h    write to network failed
  2232.  09h    semaphore already logged in this CPU
  2233. Index:    error codes;10-Net|10-Net;error codes
  2234. --------N-6F0C-------------------------------
  2235. INT 6F - 10NET - UNLOCK SEMAPHORE
  2236.     AH = 0Ch
  2237.     AL = drive number or 0
  2238.     ES:SI = Ethernet address or 0
  2239.     DS:BX -> 31-byte ASCIZ semaphore name
  2240. Return: AL = status (see also AH=0Bh)
  2241.         01h semaphore not locked
  2242. Note:    same as INT 60/AH=13h
  2243. SeeAlso: AH=0Bh,INT 60/AH=13h
  2244. --------N-6F0D-------------------------------
  2245. INT 6F - 10NET - "WHO" - ENUMERATE USERS ON NETWORK
  2246.     AH = 0Dh
  2247.     AL = type code
  2248.         01h return superstations only
  2249.         02h return non-superstations only
  2250.         otherwise return all
  2251.     CX = length of data buffer
  2252.     DS:DX -> array of records to be filled (see below)
  2253. Return: CL = number of records returned (responding stations)
  2254. SeeAlso: AH=16h,AH=8Dh
  2255.  
  2256. Format of station record:
  2257. Offset    Size    Description
  2258.  00h 12 BYTEs    node ID
  2259.  0Ch    BYTE    flags
  2260.         bit 1: workstation
  2261.         bit 2: superstation
  2262.         bit 3: xgate
  2263.         bit 4: active gate
  2264. ---if AL = 01h---
  2265.  0Dh    BYTE    version number
  2266.  0Eh    WORD    level number of 10Net software in responding node
  2267. ---if AL = 02h---
  2268.  0Dh  8 BYTEs    user ID
  2269.  15h    BYTE    version number
  2270.  16h    WORD    level number
  2271. --------N-6F0E-------------------------------
  2272. INT 6F - 10NET - SPOOL/PRINT
  2273.     AH = 0Eh
  2274.     DS:DX -> spool/print record (see below)
  2275. Return:    CF clear if successful
  2276.     CF set on error
  2277.         AX = error code (see also AH=00h)
  2278.         17FFh device not mounted
  2279.         18FFh already spooling to named device
  2280.  
  2281. Values for operation code:
  2282.  0000h    initiate spool
  2283.  0001h    abort print
  2284.  0002h    close spool
  2285.  0003h    delete spool
  2286.  0004h    print
  2287.  0005h    get report info
  2288.  0006h    set chat template
  2289.  0007h    queue
  2290.  0008h    return queue
  2291.  0009h    queue non-spooled file for printing
  2292.  
  2293. Format of Spool/Print record:
  2294. Offset    Size    Description
  2295.  00h    WORD    operation code (see above)
  2296.  02h 11 BYTEs    file name in FCB format
  2297. ---if operation code = 00h or 06h---
  2298.  0Dh    BYTE    notification flags (see below)
  2299.  0Eh    BYTE    days to keep (FFh=forever)
  2300.  0Fh    BYTE    bits 0,1: device (1=LPT1)
  2301.         bits 4-7: remote drive to store spool file (1=A,...)
  2302.  10h    WORD    length of following data area
  2303.  12h  N BYTEs    up to 64 bytes of description
  2304. ---if operation code = 03h---
  2305.  0Dh  8 BYTEs    user ID to associate with filename
  2306. ---if operation code = 04h---
  2307.  0Dh    WORD    block number
  2308.  0Fh  8 BYTEs    user ID to associate with filename
  2309. ---if operation code = 05h---
  2310.  0Dh    BYTE    RRN to start retrieve
  2311.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  2312.         bit 3: if set, return entries for all users
  2313.  0Fh    WORD    length of following area
  2314.  11h  N BYTEs    up to 1500 bytes to receive $SCNTL records returned
  2315. ---if operation code = 07h---
  2316.  0Dh    BYTE    queue number
  2317.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  2318.  0Fh    WORD    number of bytes of test print to be done
  2319.  11h    BYTE    code: 01h print device
  2320.               02h test print count
  2321.               03h prn
  2322. ---if operation code = 08h---
  2323.  0Dh    BYTE    queue location or $SCNTL location to start access
  2324.             returns next item for access:
  2325.                 00h-7Fh queued items
  2326.                 80h-FEh non-queued, non-printed items
  2327.                 FFh    no more items
  2328.  0Eh    WORD    unused
  2329.  10h    WORD    length of following area
  2330.  12h  N BYTEs    up to 64 bytes to receive $SCNTL records
  2331. ---if operation code = 09h---
  2332.  0Dh  3 BYTEs    unused
  2333.  10h  N BYTEs    path to non-spooled file to be queued for printing
  2334.  
  2335. Bitfields for notification flags:
  2336.  bit 7    queue to top
  2337.  bit 6    do ID page
  2338.  bit 5    no form feed
  2339.  bit 4    reserved
  2340.  bit 3    explicit queuing only
  2341.  bit 2    notify at print completion
  2342.  bit 1    notify server operator, with reply
  2343.  bit 0    notify at print start
  2344.  
  2345. Format of $SCNTL record:
  2346. Offset    Size    Description
  2347.  00h  8 BYTEs    user ID
  2348.  08h 11 BYTEs    filename in FCB format
  2349.  13h  6 BYTEs    node ID
  2350.  19h  3 BYTEs    creation date
  2351.  1Ch    BYTE    notification flags (see above)
  2352.  1Dh    BYTE    retention time in days
  2353.  1Eh    BYTE    printing device (LPTx)
  2354.  1Fh  3 BYTEs    date last printed (0 = never)
  2355.  22h    BYTE    device containing spoolfile
  2356.  23h    WORD    bytes to print for test print
  2357.  25h    WORD    block number to start print
  2358.  27h    BYTE    reserved
  2359. --------N-6F0F-------------------------------
  2360. INT 6F - 10NET v5.0 - "RM LOCK" - ???
  2361.     AH = 0Fh
  2362.     ???
  2363. Return: ???
  2364. SeeAlso: AH=07h,AH=08h
  2365. --------N-6F10-------------------------------
  2366. INT 6F - 10NET - ATTACH/DETACH PRINTER
  2367.     AH = 10h
  2368.     AL = subfunction
  2369.         00h initiate spooling if LPT1 is mounted
  2370.         01h terminate spooling if LPT1 is mounted
  2371. SeeAlso: INT 21/AX=5D08h
  2372. --------N-6F11-------------------------------
  2373. INT 6F - 10NET - LOCK FCB
  2374.     AH = 11h
  2375.     AL = mode
  2376.         01h sequential
  2377.         02h random
  2378.         03h random block
  2379.         CX = number of records
  2380.     DS:DX -> FCB (see INT 21/AH=0Fh)
  2381. Return:    CF clear if successful
  2382.     CF set on error
  2383.         AX = error code (see also AH=00h)
  2384.         0002h file not found
  2385. SeeAlso: AH=12h
  2386. --------N-6F12-------------------------------
  2387. INT 6F - 10NET - UNLOCK FCB
  2388.     AH = 12h
  2389.     AL = mode
  2390.         00h sequential
  2391.         01h random
  2392.         02h random block
  2393.         CX = number of records
  2394.     DS:DX -> FCB (see INT 21/AH=0Fh)
  2395. Return:    CF clear if successful
  2396.     CF set on error
  2397.         AX = error code (see also AH=00h)
  2398.         0002h file not found
  2399. SeeAlso: AH=11h
  2400. --------N-6F13-------------------------------
  2401. INT 6F - 10NET v3.3+ - GET REMOTE CONFIGURATION TABLE ADDRESS
  2402.     AH = 13h
  2403.     DS:DX -> node ID, 12 bytes blank-padded
  2404. Return:    CF clear if successful
  2405.         ES:BX = configuration table address on given machine
  2406.     CF set on error
  2407.         AX = error code (see AH=00h)
  2408. SeeAlso: AH=03h
  2409. --------N-6F14-------------------------------
  2410. INT 6F - 10NET v3.3+ - GET REMOTE MEMORY
  2411.     AH = 14h
  2412.     BX:SI = address of remote memory
  2413.     CX = length (<=1024 bytes)
  2414.     DS:DX -> node ID, 12 bytes blank-padded
  2415.     DS:DI -> area to receive remote memory image
  2416. Return:    CF clear if successful
  2417.         CX = amount of memory copied to DS:SI
  2418.     CF set on error
  2419.         AX = error code (see AH=00h)
  2420. --------N-6F1501-----------------------------
  2421. INT 6F - 10NET v3.3+ - GET SHARED DEVICE ENTRY
  2422.     AX = 1501h
  2423.     BX = zero-based index
  2424.     DS:SI -> node ID, 12 bytes blank-padded
  2425.     ES:DI -> 85-byte buffer for shared device table entry (see below)
  2426. Return:    CF clear if successful
  2427.         ES:DI buffer contains shared device table entry of BXth device
  2428.     CF set on error
  2429.         AX = error code (see AH=00h)
  2430. SeeAlso: AX=1502h,AX=1503h,AX=9501h
  2431.  
  2432. Format of shared device table entry:
  2433. Offset    Size    Description
  2434.  00h  8 BYTEs    device
  2435.  08h  8 BYTEs    alias
  2436.  10h 64 BYTEs    path
  2437.  50h  8 BYTEs    password
  2438.  58h    BYTE    access
  2439.  59h  4 BYTEs    mask
  2440. --------N-6F1502-----------------------------
  2441. INT 6F - 10NET v3.3+ - SET SHARED DEVICE ENTRY
  2442.     AX = 1502h
  2443.     DS:SI -> node ID, 12 bytes blank-padded
  2444.     ES:DI -> valid shared device table entry
  2445. Return:    CF clear if successful
  2446.     CF set on error
  2447.         AX = error code (see AH=00h)
  2448. SeeAlso: AX=1501h,AX=1503h,AX=9502h
  2449. --------N-6F1503-----------------------------
  2450. INT 6F - 10NET v3.3+ - DELETE SHARED DEVICE ENTRY
  2451.     AX = 1503h
  2452.     BX = zero-based index
  2453.     DS:SI -> node ID, 12 bytes blank-padded
  2454. Return:    CF clear if successful
  2455.     CF set on error
  2456.         AX = error code (see AH=00h)
  2457. SeeAlso: AX=1501h,AX=1502h,AX=9503h
  2458. --------N-6F16-------------------------------
  2459. INT 6F - 10NET v5.0 - "GL WHO" - ???
  2460.     AH = 16h
  2461.     ???
  2462. Return: ???
  2463. SeeAlso: AH=0Dh
  2464. --------N-6F17-------------------------------
  2465. INT 6F - 10NET v3.3+ - MOUNT
  2466.     AH = 17h
  2467.     AL = local drive number (0=A:)
  2468.     BL = remote drive letter or '1'..'3' for LPTn or '4' or '5' for COMx
  2469.     DS:DX -> node ID, 12 bytes blank-padded
  2470. Return:    CF clear if successful
  2471.     CF set on error
  2472.         AX = error code (see AH=00h)
  2473. SeeAlso: AH=18h
  2474. --------N-6F18-------------------------------
  2475. INT 6F - 10NET v3.3+ - UNMOUNT
  2476.     AH = 18h
  2477.     AL = local drive number (0=A:)
  2478.     BL = type
  2479.         00h        disk
  2480.         01h-03h LPTn
  2481.         04h,05h COMx
  2482. Return:    CF clear if successful
  2483.     CF set on error
  2484.         AX = error code (see AH=00h)
  2485. SeeAlso: AH=17h
  2486. --------N-6F19-------------------------------
  2487. INT 6F U - 10NET v5.0 - AUDIT
  2488.     AH = 19h
  2489.     ???
  2490. Return: ???
  2491. SeeAlso: AH=99h
  2492. --------N-6F1A-------------------------------
  2493. INT 6F U - 10NET v5.0 - "BULL" - ???
  2494.     AH = 1Ah
  2495.     ???
  2496. Return: ???
  2497. --------N-6F1B-------------------------------
  2498. INT 6F U - 10NET v5.0 - "GMOUNT" - ???
  2499.     AH = 1Bh
  2500.     ???
  2501. Return: ???
  2502. --------N-6F1C-------------------------------
  2503. INT 6F U - 10NET v5.0 - "GLOGIN" - GET LOGIN LIST
  2504.     AH = 1Ch
  2505.     ???
  2506. Return: ???
  2507. --------N-6F1D-------------------------------
  2508. INT 6F U - 10NET v5.0 - "TABDATA" - ???
  2509.     AH = 1Dh
  2510.     ???
  2511. Return: ???
  2512. --------N-6F1E-------------------------------
  2513. INT 6F U - 10NET v5.0 - "SCHED" - ???
  2514.     AH = 1Eh
  2515.     ???
  2516. Return: ???
  2517. --------N-6F1F-------------------------------
  2518. INT 6F U - 10NET v5.0 - "WHOAMI" - ???
  2519.     AH = 1Fh
  2520.     ???
  2521. Return: ???
  2522. --------N-6F20-------------------------------
  2523. INT 6F U - 10NET v5.0 - ???
  2524.     AH = 20h
  2525.     ???
  2526. Return: ???
  2527. --------N-6F21-------------------------------
  2528. INT 6F U - 10NET v5.0 - ???
  2529.     AH = 21h
  2530.     ???
  2531. Return: ???
  2532. --------N-6F22-------------------------------
  2533. INT 6F U - 10NET v5.0 - ???
  2534.     AH = 22h
  2535.     ???
  2536. Return: ???
  2537. --------b-6F22--BP0012-----------------------
  2538. INT 6F - HP HIL Vectras - EXTENDED BIOS - READ CMOS MEMORY
  2539.     AH = 22h
  2540.     BP = 0012h (ID of V_SYSTEM driver)
  2541.     BL = address of CMOS byte to read
  2542. Return: AH = status
  2543.     AL = byte read
  2544.     BP, DS destroyed
  2545. Note:    supported by ES, QS, and RS series HP Vectras
  2546. SeeAlso: BP=0012h/AH=24h
  2547. --------b-6F24--BP0012-----------------------
  2548. INT 6F - HP HIL Vectras - EXTENDED BIOS - WRITE CMOS MEMORY
  2549.     AH = 24h
  2550.     BP = 0012h (ID of V_SYSTEM driver)
  2551.     BL = address of CMOS byte to write
  2552.     AL = new value
  2553. Return: AH = status
  2554.     BP, DS destroyed
  2555. SeeAlso: BP=0012h/AH=22h
  2556. --------N-6F80-------------------------------
  2557. INT 6F - 10NET v5.0 - LOGIN
  2558.     AH = 80h
  2559.     DS:DX -> login record (see below)
  2560. Return: CF clear if successful
  2561.         BL = number of days until password expires (00h = never)
  2562.         CL = security level
  2563.     CF set on error
  2564.         AX = status (see AH=00h)
  2565. SeeAlso: AH=00h,AH=81h
  2566.  
  2567. Format of login record:
  2568. Offset    Size    Description
  2569.  00h  8 BYTEs    user name
  2570.  08h  8 BYTEs    password
  2571.  10h 15 BYTEs    server node ID
  2572.  1Fh  8 BYTEs    new password
  2573.  27h    BYTE    invoke mode (00h command line, 01h interactive)
  2574. --------N-6F81-------------------------------
  2575. INT 6F - 10NET v5.0 - LOGOUT
  2576.     AH = 81h
  2577.     DS:DX -> server node ID (DX=0000h for universal logout)
  2578. Return: AX = status (see AH=00h)
  2579. SeeAlso: AH=01h,AH=80h
  2580. --------N-6F8A-------------------------------
  2581. INT 6F - 10NET v5.0 - CHAT
  2582.     AH = 8Ah
  2583.     DS:BX -> chat parameters (see below)
  2584.     DS:DX -> chat message (see below)
  2585. Return: CF clear if successful
  2586.     CF set on error
  2587.         AX = status (see AH=00h)
  2588. SeeAlso: AH=0Ah
  2589.  
  2590. Format of chat parameters:
  2591. Offset    Size    Description
  2592.  00h  8 BYTEs    sender's user name
  2593.  08h  8 BYTEs    destination user name
  2594.  10h 15 BYTEs    destination node (0 if broadcast-style chat)
  2595.  
  2596. Format of chat message:
  2597. Offset    Size    Description
  2598.  00h    WORD    message length
  2599.  02h  N BYTEs    chat message contents
  2600. --------N-6F8D-------------------------------
  2601. INT 6F - 10NET v5.0 - "WHO" - ENUMERATE USERS ON NETWORK
  2602.     AH = 8Dh
  2603.     BX = service mask (see below)
  2604.     CX = length of buffer
  2605.     DS:DX -> buffer for array of Who data structures (see below)
  2606. Return: CF clear if successful
  2607.         CX = number of nodes matching service mask
  2608.         DS:DX buffer filled
  2609.     CF set on error
  2610.         AX = status (see AH=00h)
  2611. SeeAlso: AH=0Dh
  2612.  
  2613. Bitfields for service mask:
  2614.  bit 0    workstation
  2615.  bit 1    file server
  2616.  bit 2    print server
  2617.  bit 3    de-spool server
  2618.  
  2619. Format of Who data structure:
  2620. Offset    Size    Description
  2621.  00h  8 BYTEs    user name
  2622.  08h 15 BYTEs    node ID
  2623.  17h  3 BYTEs    unique portion of Ethernet address
  2624.  1Ah    BYTE    Who group number
  2625.  1Bh    WORD    service mask (see above)
  2626.  1Dh    DWORD    serial number
  2627.  21h    BYTE    maximum concurrent users with same serial number allowed on net
  2628.  22h    BYTE    chat mask (see below)
  2629.  23h    BYTE    internal system bits (see below)
  2630.  24h  9 BYTEs    version number in format MM.mm.xxx
  2631.  2Dh    BYTE    number of shared directories
  2632.  2Eh    BYTE    number of shared printer queues
  2633.  
  2634. Bitfields for chat mask:
  2635.  bit 0    chat permitted
  2636.  bit 1    bell enabled
  2637.  bit 2    chat keyboard initiated
  2638.  bit 3    in INT 16 handler
  2639.  bit 4    in Get Input
  2640.  bit 5    display has timed out
  2641.  bit 6    chat is idle
  2642.  
  2643. Bitfields for internal system bits:
  2644.  bit 0    submit permitted
  2645.  bit 1    submit initiated
  2646.  bit 2    submit executing
  2647.  bit 3    internal client call/chat/spool/autospool
  2648.  bit 4    in spool termination
  2649.  bit 5    print permitted
  2650.  bit 6    waiting for keyboard input
  2651. --------N-6F9501-----------------------------
  2652. INT 6F - 10NET v5.0 - GET SHARED DEVICE ENTRY
  2653.     AX = 9501h
  2654.     BX = zero-based index
  2655.     DS:SI -> server's node ID
  2656.     ES:DI -> buffer for shared device structure (see below)
  2657. Return: CF clear if successful
  2658.     CF set on error
  2659.         AX = status (see AH=00h)
  2660. SeeAlso: AX=1501h,AX=9502h,AX=9503h,AX=9504h
  2661.  
  2662. Format of shared device structure:
  2663. Offset    Size    Description
  2664.  00h  8 BYTEs    alias
  2665.  08h    BYTE    type (02h modem, 03h print queue, 04h directory)
  2666.  09h    BYTE    access rights
  2667.         bit 0: read
  2668.         bit 1: write
  2669.         bit 2: create
  2670.  0Ah  8 BYTEs    password
  2671.  12h 32 BYTEs    comment
  2672. ---directory---
  2673.  32h 64 BYTEs    pathname of shared directory
  2674. ---print queue---
  2675.  32h    BYTE    notification bit mask (see below)
  2676.  33h    BYTE    job control bit mask (see below)
  2677.  34h    WORD    number of days to retain file
  2678.  36h    WORD    test print length
  2679.  38h    BYTE    number of copies to print
  2680.  39h    BYTE    compression algorithm
  2681.  3Ah    BYTE    tab width (00h = don't expand)
  2682.  3Bh    BYTE    priority
  2683.  3Ch    WORD    time to open queue (FFFFh = always)
  2684.  3Eh    WORD    time to close queue
  2685.  40h    WORD    pause following queue switch, in clock ticks
  2686.  42h    WORD    pause between print jobs, in clock ticks
  2687.  44h    BYTE    associate queue file existence mask
  2688.         bit 0: queue switch file exists
  2689.         bit 1: initiate file exists
  2690.         bit 2: abort file exists
  2691.  45h  6 BYTEs    character sequence for page eject
  2692.  4Bh    BYTE    status of print queue
  2693.         bit 0: queue is closed
  2694.  4Ch    WORD    number of jobs on queue
  2695.  4Eh    WORD    offset of next print job to be dispatched (FFFFh = none)
  2696.  50h    BYTE    number of print devices in printer pool
  2697.  51h    WORD    offset of first print device structure (FFFFh if empty)
  2698.  
  2699. Bitfields for notification flags:
  2700.  bit 0    user at print start
  2701.  bit 1    operator at start, with reply
  2702.  bit 2    user at print completion
  2703.  bit 3    operator at completion, with reply
  2704.  bit 4    user on queue switch
  2705.  bit 5    operator on queue switch, with reply
  2706.  bit 6    user on print error
  2707.  
  2708. Bitfields for job control mask:
  2709.  bit 0    print banner page
  2710.  bit 1    eject page at end of job
  2711.  bit 2    mark as "held" (queue but don't print)
  2712.  bit 3    rush job (queue at top)
  2713.  bit 4    overwrite file with zeros before deletion
  2714.  bit 5    hyperspool if possible
  2715. --------N-6F9502-----------------------------
  2716. INT 6F - 10NET v5.0 - SET SHARED DEVICE ENTRY
  2717.     AX = 9502h
  2718.     DS:SI -> server's node ID
  2719.     ES:DI -> shared device structure (see AX=9501h)
  2720. Return: CF clear if successful
  2721.     CF set on error
  2722.         AX = status (see AH=00h)
  2723. SeeAlso: AX=1502h,AX=9501h,AX=9503h,AX=9504h
  2724. --------N-6F9503-----------------------------
  2725. INT 6F - 10NET v5.0 - DELETE SHARED DEVICE
  2726.     AX = 9503h
  2727.     BX = zero-based index
  2728.     DS:SI -> server's node ID
  2729. Return: CF clear if successful
  2730.     CF set on error
  2731.         AX = status (see AH=00h)
  2732. SeeAlso: AX=1503h,AX=9501h,AX=9502h,AX=9504h
  2733. --------N-6F9504-----------------------------
  2734. INT 6F - 10NET v5.0 - ENUMERATE USERS OF SHARED DEVICE
  2735.     AX = 9504h
  2736.     BX = zero-based shared device index
  2737.     CX = zero-based user index
  2738.     DS:SI -> server's node ID
  2739. Return: CF clear if successful
  2740.         ES:DI -> node ID of the CX'th user of the BX'th device
  2741.     CF set on error
  2742.         AX = status (see AH=00h)
  2743. SeeAlso: AX=9501h,AX=9502h,AX=9503h
  2744. --------N-6F99-------------------------------
  2745. INT 6F - 10NET v5.0 - AUDIT
  2746.     AH = 99h
  2747.     DS:SI -> server's node ID
  2748.     ES:DI -> data to be appended to audit trail file (max 106 bytes)
  2749. Return: CF clear if successful
  2750.     CF set on error
  2751.         AX = status (see AH=00h)
  2752. SeeAlso: AH=19h,AH=9Ch
  2753. --------N-6F9C-------------------------------
  2754. INT 6F - 10NET v5.0 - GET LOGIN LIST
  2755.     AH = 9Ch
  2756.     BX = zero-based index
  2757. Return: CF clear if successful
  2758.         DS:DI -> BX'th node ID that caller's machine is logged into
  2759.     CF set on error
  2760.         AX = status (see AH=00h)
  2761. --------H-70---------------------------------
  2762. INT 70 - IRQ8 - CMOS REAL-TIME CLOCK
  2763. Desc:    this interrupt is called when the real-time clock chip generates an
  2764.       alarm or periodic interrupt, among others.  The periodic interrupt
  2765.       occurs 1024 times per second.
  2766. Nots:    many BIOSes turn off the periodic interrupt in the INT 70h handler
  2767.       unless in an event wait (see INT 15/AH=83h or INT 15/AH=86h).
  2768.     may be masked by setting bit 0 on I/O port A1h
  2769. SeeAlso: INT 08,INT 0F"HP 95LX",INT 15/AH=01h"Amstrad",INT 15/AH=83h
  2770. SeeAlso: INT 15/AH=86h,INT 1A/AH=02h,INT 58"DESQview"
  2771. --------v-70---------------------------------
  2772. INT 70 - VIRUS - "Stupid" - ORIGINAL INT 21h VECTOR
  2773. Note:    the virus sets this interrupt to be the same as INT 21, and then
  2774.       performs only INT 70 calls; since INT 70 is also generated by the
  2775.       real-time clock on the PC/AT and higher, this could cause random
  2776.       actions on an infected system
  2777. SeeAlso: INT 6B"VIRUS",INT 9E"VIRUS",INT E0"VIRUS"
  2778. --------H-71---------------------------------
  2779. INT 71 - IRQ9 - REDIRECTED TO INT 0A BY BIOS
  2780. Notes:    may be masked by setting bit 1 on I/O port A1h
  2781.     the default BIOS handler invokes INT 0A for compatibility, since the
  2782.       pin for IRQ2 on the PC expansion bus became the pin for IRQ9 on the
  2783.       AT expansion bus.
  2784.     under DESQview, only the INT 15h vector and BASIC segment address (the
  2785.       word at 0000h:0510h) may be assumed to be valid for the handler's
  2786.       process
  2787. SeeAlso: INT 0A,INT 59
  2788. --------H-72---------------------------------
  2789. INT 72 - IRQ10 - RESERVED
  2790. Note:    may be masked by setting bit 2 on I/O port A1h
  2791. SeeAlso: INT 5A
  2792. --------H-73---------------------------------
  2793. INT 73 - IRQ11 - RESERVED
  2794. Note:    may be masked by setting bit 3 on I/O port A1h
  2795. SeeAlso: INT 5B
  2796. --------H-74---------------------------------
  2797. INT 74 - IRQ12 - POINTING DEVICE (PS)
  2798. Notes:    may be masked by setting bit 4 on I/O port A1h
  2799.     under DESQview, only the INT 15h vector and BASIC segment address (the
  2800.       word at 0000h:0510h) may be assumed to be valid for the handler's
  2801.       process
  2802. SeeAlso: INT 33,INT 5C
  2803. --------H-75---------------------------------
  2804. INT 75 - IRQ13 - MATH COPROCESSOR EXCEPTION (AT and up)
  2805.    redirected to INT 02 by the BIOS, for compatibility with the PC
  2806. Notes:    may be masked by setting bit 5 on I/O port A1h
  2807.     not all clones wire the coprocessor to generate this IRQ; some systems
  2808.       generate an NMI (see INT 02) or assert the -ERROR pin on the CPU
  2809.       (see INT 10"COPROCESSOR")
  2810.     under DESQview, only the INT 15h vector and BASIC segment address (the
  2811.       word at 0000h:0510h) may be assumed to be valid for the handler's
  2812.       process
  2813. SeeAlso: INT 10"COPROCESSOR",INT 5D
  2814. --------H-76---------------------------------
  2815. INT 76 - IRQ14 - HARD DISK CONTROLLER (AT and later)
  2816. Note:    may be masked by setting bit 6 on I/O port A1h
  2817. SeeAlso: INT 0E"IRQ6",INT 5E
  2818. --------H-77---------------------------------
  2819. INT 77 - IRQ15 - RESERVED (AT,PS)
  2820. Note:    may be masked by setting bit 7 on I/O port A1h
  2821. SeeAlso: INT 5F
  2822. --------H-77---------------------------------
  2823. INT 77 - IRQ15 - POWER CONSERVATION (Compaq SLT/286)
  2824. Note:    may be masked by setting bit 7 on I/O port A1h
  2825. SeeAlso: INT 15/AX=4600h,INT 5F
  2826. --------E-78---------------------------------
  2827. INT 78 - UofSalford DBOS DOS extender - API
  2828.     AH = function
  2829.         00h (PB) display 32-bit memory specified by command argument
  2830.         01h (PT) display 32-bit instruction(s) specified by command arg
  2831.         02h specify offset to subsequent PB and PT commands
  2832.         03h switch to protected mode
  2833.         DWORD following INT instruction point to map; protected-mode
  2834.             entry point is immediately following the DWORD
  2835.         Return: never
  2836.         Note:    if bit 31 of the map address is set, only a stub was
  2837.               loaded by DOS and DBOS will load the entire program
  2838.         04h specify that subsequent load (AH=03h) should leave program in
  2839.         memory
  2840.         05h release program from memory
  2841.         06h set break point at address and option count from commandline
  2842.         07h resume program execution
  2843.         08h single-step program
  2844.         09h set read/write breakpoint using 386 debug registers
  2845.         0Ah set write breakpoint using 386 debug register
  2846.         0Bh set memory byte to new value
  2847.         0Ch display CPU registers
  2848.         0Dh run until specified program address reached
  2849.         0Fh print trace from program map
  2850.         10h specify an offset using a map symbol
  2851.         14h print memory without any offset
  2852.         18h switch DBOS into/out of test mode (ON/OFF commandline args)
  2853.         1Dh get address of real/protected-mode communication buffer
  2854.         Return: ES:BP -> comm buffer
  2855.         1Eh set real-mode memory size (specify how much real-mode memory
  2856.           to leave free when running FTN77 programs)
  2857.         22h uninstall DBOS
  2858.         24h force DBOS to emulate coprocessor instructions
  2859.         26h set named DBOS switches from commandline
  2860.         27h reset named DBOS switched from commandline
  2861.         2Ah set list of dynamic link libraries to contents of commandline
  2862.         file
  2863.         35h specify that subsequent load (AH=03h) should stop at first
  2864.         instruction
  2865. Return: ???
  2866. Notes:    DBOS supports functions 00h through 50h; many of these functions
  2867.       provide a low-level debugging interface
  2868.     command arguments are read from the calling program's PSP
  2869. SeeAlso: INT 79"DBOS"
  2870. Index:    uninstall;DBOS DOS extender
  2871. --------E-78---------------------------------
  2872. INT 78 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ0
  2873. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  2874.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  2875. Note:    this vector is overwritten when GO32 starts but is not restored by
  2876.       early versions of the extender
  2877. SeeAlso: INT 08,INT 10/AH=FFh"GO32",INT 79"GO32"
  2878. --------A-78---------------------------------
  2879. INT 78 - AutoCAD 10 ADI for Plotters
  2880.     AX = function
  2881.         0001h initialize comm port and reset plotter
  2882.         BX = ??? (comm port?)
  2883.         0002h close plotter
  2884.         0003h move (pen up)
  2885.         BX = new X position
  2886.         CX = new Y position
  2887.         0004h move (pen down)
  2888.         BX = new X position
  2889.         CX = new Y position
  2890.         0005h select pen
  2891.         BX = pen number
  2892.         0006h select drawing speed
  2893.         BX = drawing speed N
  2894.         0007h select line style
  2895.         BX = line style N
  2896.         0008h return pen to pen carrier??? (called before change-pen cmd)
  2897. Return: ???
  2898. SeeAlso: INT 7A"AutoCAD",INT 7B"AutoCAD"
  2899. --------d-78---------------------------------
  2900. INT 78 - ADP-60 IDE controller - ORIGINAL INT 13
  2901. SeeAlso: INT 79"ADP-60"
  2902. --------d-7800-------------------------------
  2903. INT 78 - TARGA.DEV - CMC International SCSI device driver - SET I/O PORT
  2904.     AH = 00h
  2905.     DX = interface board I/O port
  2906. Return: CF set on error
  2907.         AL = error code (see below)
  2908. Note:    if this routine is not called, the port is the driver's default
  2909.       (usually 0280h or 0300h)
  2910.     an installation check is performed by TARGA.DEV upon initialization
  2911.       by checking for the string "SCSI" at offset 03h into the interrupt
  2912.       handler
  2913. SeeAlso: AH=01h,AH=02h
  2914. Index:    installation check;TARGA.DEV
  2915.  
  2916. Values for error code:
  2917.  00h    illegal command given to SCSI code
  2918.  01h    invalid I/O port specified (must be from 100H to 3F8H, and must be on
  2919.       an 8-port boundary)
  2920.  02h    invalid DMA channel specified (must be from 1 to 3)
  2921.  03h    invalid SCSI board number specified (must be from 0 to 7)
  2922.  04h    error from data register test during self-test
  2923.  05h    SCSI input signals not all 0 when SCSI RST activated
  2924.  06h    SCSI input signals not all 0 before selecting a SCSI device
  2925.  07h    BSY signal is active; SCSI bus is busy
  2926.  08h    SCSI board not selected, BSY signal did not come on in response to
  2927.       raising SEL
  2928.  09h    time-out waiting for status state, signifying end of DMA transfer
  2929. --------d-7801-------------------------------
  2930. INT 78 - TARGA.DEV - GET I/O PORT
  2931.     AH = 01h
  2932. Return: DX = current interface board I/O port
  2933. SeeAlso: AH=00h,AH=03h"TARGA"
  2934. --------d-7802-------------------------------
  2935. INT 78 - TARGA.DEV - SET DMA CHANNEL
  2936.     AH = 02h
  2937.     AL = interface board DMA channel
  2938. Return: CF set on error
  2939.     AL = error code (see AH=00h)
  2940. Note:    if this routine is not called, the DMA channel is the driver's default
  2941.       (usually 3)
  2942. SeeAlso: AH=00h,AH=03h"TARGA"
  2943. --------d-7803-------------------------------
  2944. INT 78 - TARGA.DEV - GET DMA CHANNEL
  2945.     AH = 03h
  2946. Return: AL = current interface board DMA channel
  2947. SeeAlso: AH=01h,AH=02h
  2948. --------d-7804-------------------------------
  2949. INT 78 - TARGA.DEV - SET SCSI DEVICE NUMBER
  2950.     AH = 04h
  2951.     AL = SCSI device number
  2952. Return: CF set on error
  2953.     AL = error code (see AH=00h)
  2954. Note:    if this routine is not called, the device number used is the driver's
  2955.       default (usually 0)
  2956. SeeAlso: AH=02h,AH=05h
  2957. --------d-7805-------------------------------
  2958. INT 78 - TARGA.DEV - GET SCSI DEVICE NUMBER
  2959.     AH = 05h
  2960. Return: AL = current SCSI device number
  2961. SeeAlso: AH=03h"TARGA",AH=04h
  2962. --------d-7806-------------------------------
  2963. INT 78 - TARGA.DEV - SET/CLEAR EARLY RETURN MODE
  2964.     AH = 06h
  2965.     AL = 00h clear early return mode
  2966.        = 01h set early return mode
  2967. Note:    if early return mode is set then SCSI will return with no errors
  2968.       when the last DMA transfer is started in a call with AH=13h or AH=14h
  2969.     if this routine is not called, early return mode is cleared
  2970. SeeAlso: AH=13h,AH=14h,AH=15h
  2971. --------d-7808-------------------------------
  2972. INT 78 - TARGA.DEV - INTERFACE BOARD SELF-TEST
  2973.     AH = 08h
  2974. Return: CF set on error
  2975.     AL = error code (see AH=00h)
  2976. Note:    the SCSI bus is also reset
  2977. SeeAlso: AH=09h
  2978. --------d-7809-------------------------------
  2979. INT 78 - TARGA.DEV - RESET SCSI BUS
  2980.     AH = 09h
  2981. Return: AL = error code if carry set (see AH=00h)
  2982. SeeAlso: AH=08h
  2983. --------d-7810-------------------------------
  2984. INT 78 - TARGA.DEV - SEND SCSI COMMAND
  2985.     AH = 10h
  2986.     DS:SI -> command bytes
  2987. Return: AH = SCSI status byte
  2988.     CF clear if successful
  2989.         AL = SCSI message byte
  2990.     CF set on error
  2991.         AL = error code (see AH=00h)
  2992. SeeAlso: AH=11h,INT 21/AX=4403h"ST-01"
  2993.  
  2994. Format of SCSI Command:
  2995. Offset    Size    Description
  2996.  00h    BYTE    length of command
  2997.  01h    ???    command bytes
  2998. --------d-7811-------------------------------
  2999. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (PROGRAMMED I/O)
  3000.     AH = 11h
  3001.     DS:SI -> command bytes
  3002.     ES:BX -> data storage area
  3003.     CX = number of data bytes to transfer
  3004. Return: AH = SCSI status byte
  3005.     CF clear if successful
  3006.         AL = SCSI message byte
  3007.     CF set on error
  3008.         AL = error code (see AH=00h)
  3009. Note:    this command receives data internally one byte at a time
  3010. SeeAlso: AH=10h,AH=13h
  3011.  
  3012. Format of SCSI Command:
  3013. Offset    Size    Description
  3014.  00h    BYTE    length of command
  3015.  01h    ???    command bytes
  3016. --------d-7812-------------------------------
  3017. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (PROGRAMMED I/O)
  3018.     AH = 12h
  3019.     DS:SI -> command bytes
  3020.     ES:BX -> data storage area
  3021.     CX = number of data bytes to transfer
  3022. Return: AH = SCSI status byte
  3023.     CF clear if successful
  3024.         AL = SCSI message byte
  3025.     CF set on error
  3026.         AL = error code (see AH=00h)
  3027. Note:    this command sends data internally one byte at a time
  3028. SeeAlso: AH=14h
  3029.  
  3030. Format of SCSI Command:
  3031. Offset    Size    Description
  3032.  00h    BYTE    length of command
  3033.  01h    ???    command bytes
  3034. --------d-7813-------------------------------
  3035. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (DMA)
  3036.     AH = 13h
  3037.     DS:SI -> command bytes
  3038.     ES:BX -> data storage area
  3039.     DX:CX = number of data bytes to transfer
  3040. Return: AH = SCSI status byte (if early return mode is clear)
  3041.     CF clear if successful
  3042.         AL = SCSI message byte (if early return mode is clear)
  3043.     CF set on error
  3044.         AL = error code (see AH=00h)
  3045. Note:    this command receives data using DMA
  3046. SeeAlso: AH=11h,AH=12h
  3047.  
  3048. Format of SCSI Command:
  3049. Offset    Size    Description
  3050.  00h    BYTE    length of command
  3051.  01h    ???    command bytes
  3052. --------d-7814-------------------------------
  3053. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (DMA)
  3054.     AH = 14h
  3055.     DS:SI -> command bytes
  3056.     ES:BX -> data storage area
  3057.     DX:CX = number of data bytes to transfer
  3058. Return: AH = SCSI status byte (if early return mode is clear)
  3059.     CF clear if successful
  3060.         AL = SCSI message byte (if early return mode is clear)
  3061.     CF set on error
  3062.         AL = error code (see AH=00h)
  3063. Note:    this command sends data using DMA
  3064. SeeAlso: AH=12h,AH=13h
  3065.  
  3066. Format of SCSI Command:
  3067. Offset    Size    Description
  3068.  00h    BYTE    length of command
  3069.  01h    ???    command bytes
  3070. --------d-7815-------------------------------
  3071. INT 78 - TARGA.DEV - FINISH DATA TRANSFER (DMA)
  3072.     AH = 15h
  3073. Return: AH = SCSI status byte
  3074.     CF clear if successful
  3075.         AL = SCSI message byte
  3076.     CF set on error
  3077.         AL = error code (see AH=00h)
  3078. Note:    if AH=06h was previously called to set the early return mode, this
  3079.       function finishes a command AH=13h or AH=14h which returned before
  3080.       the last DMA transfer was finished
  3081. SeeAlso: AH=06h,AH=13h,AH=14h
  3082. --------V-79---------------------------------
  3083. INT 79 - AVATAR.SYS - FAST GET KEYSTROKE
  3084. Return: CF set if no keystroke available
  3085.         AX = FFFFh
  3086.     CF clear if key pressed
  3087.         AX = keystroke
  3088. Program: AVATAR.SYS is a CON driver by George Adam Stanislav which interprets
  3089.       AVATAR command codes just as ANSI.SYS interprets ANSI commands
  3090. Note:    if a keystroke is available, it is removed from the keyboard buffer
  3091.       before being returned
  3092. SeeAlso: INT 29
  3093. --------E-79---------------------------------
  3094. INT 79 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ1
  3095. Note:    this vector is overwritten when GO32 starts but is not restored by
  3096.       early versions of the extender
  3097. SeeAlso: INT 09,INT 78"GO32",INT 7A"GO32"
  3098. --------d-79---------------------------------
  3099. INT 79 U - ADP-60 IDE adapter - ???
  3100. SeeAlso: INT 78"ADP-60"
  3101. --------E-79---------------------------------
  3102. INT 79 - DBOS DOS Extender
  3103.     details not available
  3104. Desc:    this interrupt is used by an MS Windows virtual device driver with
  3105.       which the DBOS extender communicates when run inside a Windows
  3106.       Enhanced Mode DOS box
  3107. SeeAlso: INT 78"DBOS"
  3108. --------A-790001-----------------------------
  3109. INT 79 U - AutoCAD Device Interface - DIGITIZER - INITIALIZE
  3110.     AX = 0001h
  3111. Return: AX = 0001h ??? self-test result???
  3112.     BX = 0001h
  3113. SeeAlso: AX=0002h,AX=0003h,INT 7A"AutoCAD"
  3114. --------A-790002-----------------------------
  3115. INT 79 U - AutoCAD Device Interface - DIGITIZER - CLOSE
  3116.     AX = 0002h
  3117. SeeAlso: AX=0001h,AX=0003h
  3118. --------A-790003-----------------------------
  3119. INT 79 U - AutoCAD Device Interface - DIGITIZER - GET DIGITIZER STATUS
  3120.     AX = 0003h
  3121. Return: AX = button state
  3122.         0002h no button pressed
  3123.         BX = X coordinate
  3124.         CX = Y coordinate
  3125.         0003h Pick button (0,A,B,C,D) pressed
  3126.         BX = X coordinate
  3127.         CX = Y coordinate
  3128.         0005h other button (1-9) pressed
  3129.         BX = number of button - 1
  3130.         CX = X coordinate
  3131.         DX = Y coordinate
  3132. Note:    these return values are valid for the Houston Instruments HiPad Plus
  3133.       9236 digitizer with a 16-button cursor
  3134. SeeAlso: AX=0001h,AX=0002h
  3135. --------N-7A---------------------------------
  3136. INT 7A U - Topware Network Operating System - ???
  3137.     AL = ???
  3138.     ???
  3139. Return: ???
  3140. SeeAlso: INT 21/AH=FFh"Topware",INT 2F/AX=FF00h
  3141. --------A-7A---------------------------------
  3142. INT 7A - AutoCAD Device Interface
  3143.     ???
  3144. SeeAlso: AX=0001h,INT 61/AX=0007h"OPTIMA",INT 78"AutoCAD",INT 79/AX=0001h
  3145. SeeAlso: INT 7B"AutoCAD"
  3146. --------N-7A---------------------------------
  3147. INT 7A - X.PC Packet software interface
  3148.     ES:BX -> parameter block
  3149. SeeAlso: INT 60/AX=01FFh
  3150. --------E-7A---------------------------------
  3151. INT 7A - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ2
  3152. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  3153.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  3154. Note:    this vector is overwritten when GO32 starts but is not restored by
  3155.       early versions of the extender
  3156. SeeAlso: INT 0A,INT 79"GO32",INT 7B"GO32"
  3157. ----------7A---------------------------------
  3158. INT 7A O - PRINDIR - API (moved to INT 7C)
  3159. SeeAlso: INT 7C"PRINDIR"
  3160. --------N-7A---------------------------------
  3161. INT 7A - Novell NetWare - LOW-LEVEL API - Notes
  3162. Note:    this interrupt is used for IPX/SPX access in NetWare versions through
  3163.       2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  3164.       entry point even though INT 7A still exists.    For both INT 7A and
  3165.       the FAR entry point, BX contains the function number; IPX is
  3166.       sometimes called internally with BX bit 15 set.
  3167. SeeAlso: INT 2F/AX=7A00h,INT 64"Novell",INT 7A/BX=0000h
  3168. --------N-7A----BX0000-----------------------
  3169. INT 7A - Novell NetWare - IPX Driver - OPEN SOCKET
  3170.     BX = 0000h
  3171.     AL = socket longevity
  3172.         00h open until close or terminate
  3173.         FFh open until close
  3174.     DX = socket number (high byte in DL)
  3175.         0000h dynamic allocation
  3176.         else  socket to open (see below)
  3177. Return: AL = return code
  3178.         00h success
  3179.         DX = socket number
  3180.         FEh socket table full
  3181.         FFh socket already open
  3182. Notes:    TSRs which need to use sockets should set AL to FFh, non-resident
  3183.       programs should normally use AL=00h
  3184.     IPX can be configured to support up to 150 open sockets on a
  3185.       workstation, and defaults to 20
  3186.     this function is supported by Advanced NetWare 1.02+
  3187. SeeAlso: BX=0001h,BX=0004h
  3188.  
  3189. Values for socket number:
  3190.  0451h    File Service (Netware Core Protocol)
  3191.  0452h    Service Advertising Protocol
  3192.  0453h    Routing Information Packet
  3193.  0455h    NetBIOS Packet
  3194.  0456h    diagnostics
  3195.  0457h    server serial numbers (labeled "Copy Protection" by Lanalyzer)
  3196.  4000h-7FFFh used for dynamic allocation
  3197.  4444h    Brightwork Development's SiteLock server
  3198.  5555h    Brightwork Development's SiteLock client (workstation)
  3199.  8000h-FFFFh assigned by Novell
  3200. Note:    SiteLock is an application metering product using IPX to communicate
  3201.       between the application and the license server
  3202. --------N-7A----BX0001-----------------------
  3203. INT 7A - Novell NetWare - IPX Driver - CLOSE SOCKET
  3204.     BX = 0001h
  3205.     DX = socket number (high byte in DL)
  3206. Notes:    also cancels events set by any Event Control Blocks for the socket
  3207.     the program must close all open sockets before terminating
  3208.     this function is supported by Advanced NetWare 1.02+
  3209. SeeAlso: BX=0000h
  3210. --------N-7A----BX0002-----------------------
  3211. INT 7A - Novell NetWare - IPX Driver - GET LOCAL TARGET
  3212.     BX = 0002h
  3213.     ES:SI -> target internetwork address (see INT 7A/BX=000Bh)
  3214.     ES:DI -> 6-byte buffer for local target
  3215. Return: AL = return code
  3216.         00h success
  3217.            CX = expected one-way transfer time (clock ticks) for a 576-byte
  3218.             packet
  3219.            ES:DI -> local target
  3220.         FAh unsuccessful (no path to destination)
  3221. Notes:    the internetwork address consists of a 4-byte network address followed
  3222.       by a 6-byte node address.  The local target is only a 6-byte node
  3223.       address.  If the target is in the same network, the local target is
  3224.       just the node address of target; otherwise, the local target is the
  3225.       node address of the bridge that leads to the target.
  3226.     this function may be called from inside IPX and AES Event Service
  3227.       Routines, but not from other interrupt handlers
  3228.     this function is supported by Advanced NetWare 1.02+
  3229. SeeAlso: BX=0009h
  3230. --------N-7A----BX0003-----------------------
  3231. INT 7A - Novell NetWare - IPX Driver - SEND PACKET
  3232.     BX = 0003h
  3233.     ES:SI -> Event Control Block (see below)
  3234. Notes:    returns immediately; IPX attempts to send the packet in the background
  3235.     this function is supported by Advanced NetWare 1.02+
  3236.     this function is nearly identical to BX=000Fh, except that it always
  3237.       copies the source address into the IPX header assumed to be at the
  3238.       beginning of the first fragment
  3239. SeeAlso: BX=0004h,BX=000Fh,INT 21/AH=EEh"Novell"
  3240.  
  3241. Format of Event Control Block:
  3242. Offset    Size    Description
  3243.  00h    DWORD    Link
  3244.  04h    DWORD    -> Event Service Routine (00000000h if none)
  3245.  08h    BYTE    in use flag (see below)
  3246.  09h    BYTE    completion code (see below)
  3247.  0Ah    WORD    (big-endian) socket number (see INT 7A/BX=0000h)
  3248.  0Ch  4 BYTEs    IPX workspace
  3249.  10h 12 BYTEs    driver workspace
  3250.  1Ch  6 BYTEs    immediate local node address
  3251.  22h    WORD    fragment count
  3252.  24h    var    fragment descriptors
  3253.         Offset    Size    Description
  3254.          00h    DWORD    -> fragment data
  3255.          04h    WORD    size of fragment in bytes.
  3256. Notes:    ESR is a far procedure that is called when the ECB has been handled.
  3257.       On call, the in use flag is zero if the ECB has been handled,
  3258.       non-zero otherwise. If the flag is zero, the completion code holds
  3259.       the result of the event.
  3260.     the first fragment should start with an IPX header
  3261.     all fragments are concatenated and sent in one piece
  3262.     node address FFh FFh FFh FFh FFh FFh broadcasts to all nodes
  3263.  
  3264. Format of AES-ECB:
  3265. Offset    Size    Description
  3266.  00h    DWORD    Link
  3267.  04h    DWORD    ESR address
  3268.  08h    BYTE    in use flag (see below)
  3269.  09h  5 BYTEs    AES workspace
  3270.  
  3271. Values for ECB in use flag:
  3272.  00h    available
  3273.  E0h    AES temporary
  3274.  F6h    \ special IPX/SPX processing for v3.02+
  3275.  F7h    /
  3276.  F8h    IPX in critical section
  3277.  F9h    SPX listening
  3278.  FAh    processing
  3279.  FBh    holding
  3280.  FCh    AES waiting
  3281.  FDh    AES couting down delay time
  3282.  FEh    awaiting packet reception
  3283.  FFh    sending packet
  3284.  
  3285. Values for ECB completion code:
  3286.  00h    success
  3287.  ECh    remote terminated connection without acknowledging packet
  3288.  EDh    abnormal connection termination
  3289.  EEh    invalid connection ID
  3290.  EFh    SPX connection table full
  3291.  F9h    event should not be cancelled
  3292.  FAh    cannot establish connection with specified destination
  3293.  FCh    cancelled
  3294.  FDh    malformed packet
  3295.  FEh    packet undeliverable
  3296.  FFh    physical error
  3297.  
  3298. Event Service Routine called with:
  3299.     AL = caller's identity (00h = AES, FFh = IPX)
  3300.     ES:SI -> event control block
  3301.     interrupts disabled
  3302.  
  3303. Format of IPX header:
  3304. Offset    Size    Description
  3305.  00h    WORD    (big-endian) checksum
  3306.  02h    WORD    (big-endian) length in bytes of total packet
  3307.  04h    BYTE    transport control
  3308.  05h    BYTE    packet type (see below)
  3309.  06h 10 BYTEs    destination internetwork address
  3310.  10h    WORD    (big-endian) destination socket
  3311.  12h 10 BYTEs    source internetwork address
  3312.  1Ch    WORD    (big-endian) source socket
  3313.  
  3314. Values for IPX packet type:
  3315.  00h    unknown packet type
  3316.  01h    routing information packet
  3317.  02h    echo packet
  3318.  03h    error packet
  3319.  04h    packet exchange packet (always use this one)
  3320.  05h    SPX packet
  3321.  11h    NetWare Core Protocol
  3322.  14h    Propagated Packet (for NetWare), NetBIOS name packet
  3323.  15h-1Eh experimental protocols
  3324.  
  3325. Format of Service Advertising Protocol Service Query Packet:
  3326. Offset    Size    Description
  3327.  00h 30 BYTEs    IPX header
  3328.  1Eh    WORD    (big-endian) query type
  3329.         0001h general find service
  3330.         0003h find nearest server
  3331.  20h    WORD    (big-endian) server type (see INT 21/AH=E3h"NetWare")
  3332.  
  3333. Format of Service Advertising Protocol Server Identification Packet:
  3334. Offset    Size    Description
  3335.  00h 30 BYTEs    IPX header
  3336.  1Eh    WORD    (big-endian) response type
  3337.         0002h general service
  3338.         0004h nearest service
  3339.  20h 64N BYTEs    server entries (1-7) (see below)
  3340.  
  3341. Format of SAP server entry:
  3342. Offset    Size    Description
  3343.  00h    WORD    (big-endian) server type (see INT 21/AH=E3h"NetWare")
  3344.  02h 48 BYTEs    ASCIZ server name
  3345.  32h  2 WORDs    (big-endian) network number
  3346.  34h  3 WORDs    (big-endian) node number
  3347.  3Ch    WORD    (big-endian) socket number
  3348.  3Eh    WORD    (big-endian) number of hops between caller and server
  3349.  
  3350. Format of Routing Information packet:
  3351. Offset    Size    Description
  3352.  00h 30 BYTEs    IPX header
  3353.  1Eh    WORD    operation (0001h request, 0002h response)
  3354.  20h 8N BYTEs    network entries (1-50) (see below)
  3355.  
  3356. Format of RIP network entry:
  3357. Offset    Size    Description
  3358.  00h    DWORD    network number (FFFFFFFFh = general request)
  3359.  04h    WORD    (response) number of hops
  3360.  06h    WORD    (response) number of clock ticks to reach destination
  3361. --------N-7A----BX0004-----------------------
  3362. INT 7A - Novell NetWare - IPX Driver - LISTEN FOR PACKET
  3363.     BX = 0004h
  3364.     ES:SI -> Event Control Block (see BX=0003h)
  3365. Return: AL = status
  3366.         00h successful
  3367.         FFh no listening socket for packet
  3368. Desc:    this function provides IPX with an ECB for receiving an IPX packet, but
  3369.       does not wait for a packet to arrive
  3370. Notes:    the application must open a socket and initialize the ECB's ESR
  3371.       address, socket number, fragment count, and fragment descriptor
  3372.       fields before invoking this function
  3373.     there is no limit on the number of ECBs which may simultaneously be
  3374.       listening on a socket
  3375.     this function is supported by Advanced NetWare 1.02+
  3376. SeeAlso: BX=0000h,BX=0003h
  3377. --------N-7A----BX0005-----------------------
  3378. INT 7A - Novell NetWare - IPX Driver - SCHEDULE IPX EVENT
  3379.     BX = 0005h
  3380.     AX = delay time in clock ticks
  3381.     ES:SI -> Event Control Block (see BX=0003h)
  3382. Note:    this function is supported by Advanced NetWare 1.02+
  3383. SeeAlso: BX=0006h,BX=0007h,BX=0008h
  3384. --------N-7A----BX0006-----------------------
  3385. INT 7A - Novell NetWare - IPX Driver - CANCEL EVENT
  3386.     BX = 0006h
  3387.     ES:SI -> Event Control Block (see BX=0003h)
  3388. Return: AL = return code
  3389.         00h success
  3390.         F9h event in use
  3391.         FCh event cancelled
  3392.         FFh unsuccessful, event not in use, or unrecognized ECB flag
  3393. Notes:    cannot cancel packets which the node's driver has already sent
  3394.     this function is supported by Advanced NetWare 1.02+
  3395. SeeAlso: BX=0005h
  3396. --------N-7A----BX0007-----------------------
  3397. INT 7A - Novell NetWare - IPX Driver - SCHEDULE SPECIAL EVENT
  3398.     BX = 0007h
  3399.     AX = delay time
  3400.     ES:SI -> Event Control Block (see BX=0003h)
  3401. Note:    this function is supported by Advanced NetWare 1.02+
  3402. SeeAlso: BX=0006h
  3403. --------N-7A----BX0008-----------------------
  3404. INT 7A - Novell NetWare - IPX Driver - GET INTERVAL MARKER
  3405.     BX = 0008h
  3406. Return: AX = interval marker in clock ticks
  3407. Notes:    may be used to measure the time elapsed between two events, up to one
  3408.       hour
  3409.     this function is supported by Advanced NetWare 1.02+
  3410. SeeAlso: BX=0005h
  3411. --------N-7A----BX0009-----------------------
  3412. INT 7A - Novell NetWare - IPX Driver - GET INTERNETWORK ADDRESS
  3413.     BX = 0009h
  3414.     ES:SI -> buffer for own internetwork address (see below)
  3415. Return: ES:SI buffer filled
  3416.     SI destroyed
  3417. Note:    this function is supported by Advanced NetWare 1.02+
  3418. SeeAlso: BX=0002h,BX=000Bh
  3419.  
  3420. Format of internetwork address:
  3421. Offset    Size    Description
  3422.  00h  4 BYTEs    (big-endian) network number
  3423.  04h  6 BYTEs    (big-endian) node number within network
  3424. --------N-7A----BX000A-----------------------
  3425. INT 7A - Novell NetWare - IPX Driver - RELINQUISH CONTROL
  3426.     BX = 000Ah
  3427. Desc:    this call indicates that the application is idle and permits the IPX
  3428.       driver to do some work
  3429. Note:    this function is supported by Advanced NetWare 1.02+
  3430. SeeAlso: INT 15/AX=1000h,INT 21/AH=89h,INT 2F/AX=1680h
  3431. --------N-7A----BX000B-----------------------
  3432. INT 7A - Novell NetWare - IPX Driver - DISCONNECT FROM TARGET
  3433.     BX = 000Bh
  3434.     ES:SI -> internetwork address (see below)
  3435. Notes:    this function permits the network software on the remote machine to
  3436.       remove any virtual connection with the calling machine
  3437.     only use in point-to-point networks
  3438.     should never be called from within an Event Service Routine
  3439.     this function is supported by Advanced NetWare 1.02+
  3440. SeeAlso: BX=0002h,BX=0009h
  3441.  
  3442. Format of internetwork address:
  3443. Offset    Size    Description
  3444.  00h  4 BYTEs    (big-endian) destination network
  3445.  04h  6 BYTEs    (big-endian) destination node
  3446.  0Ah  2 BYTEs    (big-endian) destination socket
  3447. --------N-7A----BX000C-----------------------
  3448. INT 7A U - Novell NetWare - IPX Driver - internal - INITIALIZE NETWORK ADDRESS
  3449.     BX = 000Ch
  3450.     CX:DX = global network address (see INT 7A/BX=0002h)
  3451.     ES:DI -> "OSINCRITICALSECTION" flag
  3452.     DS:SI -> current mode for socket
  3453. Note:    the address cannot be changed once it has been initialized
  3454. --------N-7A----BX000D-----------------------
  3455. INT 7A U - Novell NetWare - IPX Driver - internal - IPX GET PACKET SIZE
  3456.     BX = 000Dh
  3457. Return: AX = maximum packet size
  3458.     CX = retry count
  3459. SeeAlso: BX=001Ah
  3460. --------N-7A----BX000E-----------------------
  3461. INT 7A U - Novell NetWare - IPX Driver - internal - TERMINATE SOCKETS
  3462.     BX = 000Eh
  3463. Return: nothing
  3464. Note:    this function terminates all sockets opened with the current mode; this
  3465.       may be intended for future enhancements as the socket mode never
  3466.       changes in v2.15
  3467. --------N-7A----BX000F-----------------------
  3468. INT 7A U - Novell NetWare - IPX Driver - INTERNAL - SEND PACKET
  3469.     BX = 000Fh
  3470.     ES:SI -> Event Control Block (see BX=0003h)
  3471. Note:    nearly identical to function 0003h, but does not copy address into
  3472.       the first fragment
  3473. SeeAlso: BX=0003h
  3474. --------N-7A----BX0010-----------------------
  3475. INT 7A - Novell NetWare - SPX Driver - INSTALLATION CHECK
  3476.     BX = 0010h
  3477.     AL = 00h
  3478. Return: AL = FFh if SPX loaded
  3479.         BH = SPX major version
  3480.         BL = SPX minor version
  3481.         CX = maximum SPX connections
  3482.         DX = SPX connections available
  3483. Note:    this function is supported by Advanced NetWare 2.1+
  3484. SeeAlso: BX=0015h
  3485. --------N-7A----BX0011-----------------------
  3486. INT 7A - Novell NetWare - SPX Driver - ESTABLISH SPX CONNECTION
  3487.     BX = 0011h
  3488.     AL = retry count
  3489.     AH = watchdog flag
  3490.     ES:SI -> Event Control Block (see BX=0003h)
  3491. Return: AL = status
  3492.         00h attempting to contact destination socket
  3493.         EFh local connection table full
  3494.         FDh buffer size not 42 or fragment count not 1
  3495.         FFh sending socket not open
  3496.     DX = assigned connection ID number
  3497. Desc:    attempt to establish a connection with a listening socket
  3498. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  3499.       that NetWare can perform its internal packet exchanges
  3500.     the first fragment should start with a SPX header.  Fill in all
  3501.       destination addresses.
  3502.     this function is supported by Advanced NetWare 2.1+
  3503. SeeAlso: BX=0000h,BX=0012h,BX=0013h,BX=0014h,BX=0015h
  3504.  
  3505. Format of SPX header:
  3506. Offset    Size    Description
  3507.  00h    WORD    (big-endian) checksum
  3508.  02h    WORD    (big-endian) length in bytes of total packet
  3509.  04h    BYTE    transport control
  3510.  05h    BYTE    packet type (see INT 7A/BX=0003h)
  3511.  06h 10 BYTEs    destination internet address
  3512.  10h    WORD    (big-endian) destination socket
  3513.  12h 10 BYTEs    source internet address
  3514.  1Ch    WORD    (big-endian) source socket
  3515.  1Eh    BYTE    connection control (see below)
  3516.  1Fh    BYTE    datastream type
  3517.         FEh terminate connection request packet
  3518.         FFh terminate connection acknowledgement packet
  3519.         other user-defined, ignored by SPX
  3520.  20h    WORD    (big-endian) source connection ID
  3521.  22h    WORD    (big-endian) destination connection ID
  3522.  24h    WORD    (big-endian) sequence number
  3523.  26h    WORD    (big-endian) acknowledge number
  3524.  28h    WORD    (big-endian) allocation number
  3525.  
  3526. Bitfield for connection control:
  3527.  bits 3-0 unused???
  3528.  bit 4    end of message
  3529.  bit 5    reserved
  3530.  bit 6    acknowledgement required
  3531.  bit 7    system packet
  3532. --------N-7A----BX0012-----------------------
  3533. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX CONNECTION
  3534.     BX = 0012h
  3535.     AH = watchdog flag
  3536.         00h disabled
  3537.         01h enabled
  3538.     AL = retry count (00h = default)
  3539.     ES:SI -> Event Control Block (see BX=0003h)
  3540. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  3541.       that NetWare can perform its internal packet exchanges
  3542.     this function is supported by Advanced NetWare 2.1+
  3543. SeeAlso: BX=0011h,BX=0013h,BX=0014h
  3544. --------N-7A----BX0013-----------------------
  3545. INT 7A - Novell NetWare - SPX Driver - TERMINATE SPX CONNECTION
  3546.     BX = 0013h
  3547.     DX = connection ID to terminate
  3548.     ES:SI -> Event Control Block (see BX=0003h)
  3549. Note:    this function is supported by Advanced NetWare 2.1+
  3550. SeeAlso: BX=0011h,BX=0012h,BX=0014h
  3551. --------N-7A----BX0014-----------------------
  3552. INT 7A - Novell NetWare - SPX Driver - ABORT SPX CONNECTION
  3553.     BX = 0014h
  3554.     DX = connection ID to terminate
  3555. Notes:    this function is supported by Advanced NetWare 2.1+
  3556.     this function does not tell the other side that the connection has been
  3557.       terminated
  3558.     also aborts any outstanding Establish Connection, Terminate Connection,
  3559.       and Send Sequenced Packet commands
  3560. SeeAlso: BX=0011h,BX=0013h
  3561. --------N-7A----BX0015-----------------------
  3562. INT 7A - Novell NetWare - SPX Driver - GET SPX CONNECTION STATUS
  3563.     BX = 0015h
  3564.     DX = connection ID
  3565.     ES:SI -> status buffer (see below)
  3566. Return: AL = return code
  3567.         00h connection still valid
  3568.         ES:SI -> status buffer filled
  3569.         EEh no such connection
  3570. Note:    this function is supported by Advanced NetWare 2.1+
  3571. SeeAlso: BX=0010h,BX=0011h
  3572.  
  3573. Format of status buffer:
  3574. Offset    Size    Description
  3575.  00h    BYTE    connection state
  3576.         01h waiting to establish connection
  3577.         02h starting (attempting to create connection)
  3578.         03h connection established
  3579.         04h terminating
  3580.  01h    BYTE    watchdog flag
  3581.         bit 0: used internally by SPX
  3582.         bit 1: SPX watchdog is monitoring connection
  3583.         bits 2-7 used internally by SPX
  3584.  02h    WORD    (big-endian) source connection ID
  3585.  04h    WORD    (big-endian) destination connection ID
  3586.  06h    WORD    (big-endian) sequence number of next packet sent
  3587.  08h    WORD    (big-endian) acknowledge number, expected sequence number of
  3588.           next received packet
  3589.  0Ah    WORD    (big-endian) maximum sequence number remote SPX may send
  3590.           without ACK from local SPX
  3591.  0Ch    WORD    (big-endian) remote acknowledge number, next sequence number
  3592.           remote SPX expects to receive
  3593.  0Eh    WORD    (big-endian) remote allocation number, maximum sequence number
  3594.           local SPX may send
  3595.  10h    WORD    (big-endian) connection socket
  3596.  12h  6 BYTEs    immediate node address--bridge on local network to destination
  3597.  18h 10 BYTEs    destination internetwork address (see INT 7A/BX=000Bh)
  3598.  22h    WORD    (big-endian) retransmit count
  3599.  24h    WORD    (big-endian) estimated roundtrip delay
  3600.  26h    WORD    (big-endian) retransmitted packets
  3601.  28h    WORD    (big-endian) suppressed packets
  3602.  2Ah 12 BYTEs    ??? (v2.15)
  3603. --------N-7A----BX0016-----------------------
  3604. INT 7A - Novell NetWare - SPX Driver - SEND SPX PACKET
  3605.     BX = 0016h
  3606.     DX = connection ID
  3607.     ES:SI -> Event Control Block (see BX=0003h)
  3608. Notes:    this function is supported by Advanced NetWare 2.1+
  3609.     CX may need to be 0001h ???
  3610. SeeAlso: BX=0011h,BX=0017h
  3611. --------N-7A----BX0017-----------------------
  3612. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX PACKET
  3613.     BX = 0017h
  3614.     DX = connection ID (unused in v2.15)
  3615.     ES:SI -> Event Control Block (see BX=0003h)
  3616. Notes:    this function is supported by Advanced NetWare 2.1+
  3617.     CX may need to be 0001h ???
  3618. SeeAlso: BX=0011h,BX=0016h
  3619. --------N-7A----BX0018-----------------------
  3620. INT 7A U - Novell NetWare - SPX Driver - internal - ADD DIAGNOSTIC ELEMENT
  3621.     BX = 0018h
  3622.     ES:SI -> diagnostic element (see below) to be added to Diagnostic Queue
  3623. Note:    this function is supported on file servers only under v2.15; v3.02 also
  3624.       supports it on workstations
  3625. SeeAlso: BX=0019h
  3626.  
  3627. Format of diagnostic element:
  3628. Offset    Size    Description
  3629.  00h    DWORD    pointer to next diagnostic element
  3630.  04h    DWORD    pointer to function for ???
  3631.  08h    DWORD    pointer to function for ???
  3632. --------N-7A----BX0019-----------------------
  3633. INT 7A U - Novell NetWare - IPX Driver - internal - CANCEL DIAGNOSTIC ELEMENT
  3634.     BX = 0019h
  3635.     ES:SI -> diagnostic element (see BX=0018h) to be removed
  3636. Note:    this function is supported on file servers only under v2.15; v3.02 also
  3637.       supports it on workstations
  3638. SeeAlso: BX=0018h
  3639. --------N-7A----BX001A-----------------------
  3640. INT 7A U - Novell NetWare - IPX Driver - internal - GET DRIVER PACKT SIZE LIMIT
  3641.     BX = 001Ah
  3642. Return: AX = packet size with preamble
  3643.     CX = IPX retry count
  3644. Note:    this function is supported on file servers only under v2.15; v3.02 also
  3645.       supports it on workstations
  3646. SeeAlso: BX=000Dh
  3647. --------N-7A----BX001B-----------------------
  3648. INT 7A U - Novell NetWare - IPX Driver - INTERNAL
  3649.     BX = 001Bh
  3650.     ???
  3651. Return: ???
  3652. Note:    this function is supported on file servers only under v2.15; v3.02 also
  3653.       supports it on workstations
  3654. ----------7A0001-----------------------------
  3655. INT 7A - AutoCAD Device Interface - VIDEO DRIVER - GET ENTRY POINT
  3656.     AX = 0001h
  3657. Return: AX = ??? (0003h for Compaq VGADI41.EXE)
  3658.     BX = 0000h
  3659.     DX:CX -> ADI entry point (see below)
  3660. SeeAlso: AX=07D0h
  3661.  
  3662. Call ADI entry point with:
  3663.     STACK:    DWORD    -> request record (see below)
  3664.  
  3665. Format of request record:
  3666. Offset    Size    Description
  3667.  00h    WORD    function number (00h-45h for Compaq VGADI41.EXE)
  3668. --------I-7A04-------------------------------
  3669. INT 7A - IBM 3270 Workstation Program API - CREATE A QUEUE
  3670.     AH = 04h
  3671.     ???
  3672. Return: ???
  3673. SeeAlso: AH=06h
  3674. --------I-7A06-------------------------------
  3675. INT 7A - IBM 3270 Workstation Program API - DELETE A QUEUE
  3676.     AH = 06h
  3677.     ???
  3678. Return: ???
  3679. SeeAlso: AH=04h
  3680. ----------7A07D0-----------------------------
  3681. INT 7A - AutoCAD Device Interface - Compaq VGADI41.EXE - GET ENTRY POINT
  3682.     AX = 07D0h
  3683. Return: Return: AX = ??? (0003h)
  3684.     BX = 0000h
  3685.     DX:CX -> ADI entry point (see AX=0001h)
  3686. SeeAlso: AX=0001h
  3687. --------I-7A09--BX8020-----------------------
  3688. INT 7A - IBM 3270 Workstation Program API - SESSION SERVICES
  3689.     AH = 09h
  3690.     BX = 8020h (synchronous request)
  3691.     CX = 0000h
  3692.     DX = ID of session manager (SESSMGR)
  3693.     AL = service
  3694.         01h get session ID
  3695.         02h get session info
  3696.         04h dettach from session
  3697.         05h attach to session
  3698.         06h get list of windows available
  3699.         07h get environment of window
  3700.         08h get 'PIF' (program information file) info
  3701.         0Ah get base window ID
  3702.         0Bh get cursor info
  3703.     ES:DI -> control block
  3704. Return: ???
  3705. --------I-7A09--BX8020-----------------------
  3706. INT 7A - IBM 3270 Workstation Program API - KEYBOARD SERVICES
  3707.     AH = 09h
  3708.     BX = 8020h (synchronous request)
  3709.     CX = 0000h
  3710.     DX = ID of keyboard manager
  3711.     AL = service
  3712.         01h connect to keyboard
  3713.         02h disconnect from keyboard
  3714.         03h read from keyboard
  3715.         04h send keystroke to session
  3716.         05h disable input
  3717.         06h enable input
  3718.         07h update status code
  3719.     ES:DI -> control block
  3720. Return: ???
  3721. --------I-7A09--BX8020-----------------------
  3722. INT 7A - IBM 3270 Workstation Program API - WINDOW SERVICES
  3723.     AH = 09h
  3724.     BX = 8020h (synchronous request)
  3725.     CX = 00FFh
  3726.     DX = ID of window service controller (WSCTRL)
  3727.     AL = service
  3728.         01h connect to WS control
  3729.         02h disconnect from WS control
  3730.         03h add a window
  3731.         04h change window's position on screen
  3732.         05h change window's size
  3733.         06h change window's color
  3734.         07h change window's position in the presentation space
  3735.         08h hide/unhide toggle
  3736.         09h enlarge/reduce toggle
  3737.         0Ah change screen background color
  3738.         0Bh get window's position on screen
  3739.         0Ch get window's size
  3740.         0Dh get window's color
  3741.         0Eh get window's position in the presentation space
  3742.         0Fh determine whether hidden
  3743.         10h determine whether enlarged
  3744.         11h get background color
  3745.         12h get window names
  3746.         13h delete all windows from profile
  3747.         14h pick active window
  3748.         15h redraw screen
  3749.         16h redraw window
  3750.         17h delete a window from profile
  3751.         18h get active window
  3752.         19h get active screen
  3753.         1Ah get window data
  3754.         1Bh change window data
  3755.         1Ch select active screen
  3756.     ES:DI -> control block
  3757. Return: ???
  3758. --------I-7A09--BX8020-----------------------
  3759. INT 7A - IBM 3270 Workstation Program API - PRESENTATION SPACE SERVICES
  3760.     AH = 09h
  3761.     BX = 8020h
  3762.     CX = 00FFh
  3763.     DX = ID of PCPSM
  3764.     AL = service
  3765.         01h define presentation space
  3766.         02h delete presentation space
  3767.         03h display presentation space
  3768.         04h position cursor in presentation space
  3769.         05h change default presentation space
  3770.     ES:DI -> control block
  3771. Return: ???
  3772. --------I-7A09--BX8020-----------------------
  3773. INT 7A - IBM 3270 Workstation Program API - 3270 EMULATION
  3774.     AH = 09h
  3775.     BX = 8020h
  3776.     CX = 00FFh
  3777.     DX = ID of 3270EML
  3778.     AL = service
  3779.         01h connect
  3780.         02h disconnect
  3781.     ES:DI -> control block
  3782. Return: ???
  3783. --------I-7A09--BX8020-----------------------
  3784. INT 7A - IBM 3270 Workstation Program API - OPERATOR INFORMATION AREA
  3785.     AH = 09h
  3786.     BX = 8020h
  3787.     CX = 00FFh
  3788.     DX = ID of OIAM
  3789.     AL = service
  3790.         01h read Operator Information Area
  3791.         02h read OIA subset
  3792.     ES:DI -> control block
  3793. Return: ???
  3794. Note: the OIA is the 25th line on the Host session
  3795. --------I-7A09--BX8020-----------------------
  3796. INT 7A - IBM 3270 Workstation Program API - TRANSLATE DATA
  3797.     AH = 09h
  3798.     BX = 8020h
  3799.     CX = 00FFh
  3800.     DX = ID of XLATE
  3801.     AL = service
  3802.         01h translate from host characters to ASCII and vice versa
  3803.         (determined by control block byte 11)
  3804.     ES:DI -> control block
  3805. Return: ???
  3806. --------I-7A09--BX8020-----------------------
  3807. INT 7A - IBM 3270 Workstation Program API - COPY SERVICE
  3808.     AH = 09h
  3809.     BX = 8020h
  3810.     CX = 00FFh
  3811.     DX = ID of copy service
  3812.     AL = service
  3813.         01h copy string from one presentation space to another
  3814.         02h copy block from one presentation space to another
  3815.         03h connect to PC session for copy
  3816.         04h disconnect PC session from copy
  3817.     ES:DI -> control block
  3818. Return: ???
  3819. --------I-7A09--BX8020-----------------------
  3820. INT 7A - IBM 3270 Workstation Program API - Multi-DOS
  3821.     AH = 09h
  3822.     BX = 8020h
  3823.     CX = 00FFh
  3824.     ES:DI -> control block
  3825.     DX = ID of INDJQRY
  3826.         get environment size
  3827.        = ID of INDJASY
  3828.         request DOS functions from workstation
  3829.        = ID of MEMORY
  3830.         AL = function
  3831.             01h allocate memory
  3832.             02h deallocate memory
  3833.             03h modify allocated size
  3834. Return: ???
  3835. --------I-7A09-------------------------------
  3836. INT 7A - IBM 3270 Workstation Program API - HOST SERVICES
  3837.     AH = 09h
  3838.     BX = request type (4000h async, 8028h synchronous)
  3839.     CX = 0000h
  3840.     DX = ID of MFIC
  3841.     AL = service
  3842.        01h connect to host
  3843.        02h disconnect from host
  3844.        03h read DFT structured data from host
  3845.        04h write DFT structured data to host
  3846.        05h create a host buffer
  3847.     ES:DI -> control block
  3848. --------I-7A13-------------------------------
  3849. INT 7A - IBM 3270 Workstation Program API - GET DATA FROM A QUEUE
  3850.     AH = 13h
  3851.     ???
  3852. Return: ???
  3853. ----------7A7A-------------------------------
  3854. INT 7A - Canon IX-30F Image Scanner SI3.SYS - INTERFACE
  3855.     AH = 7Ah
  3856.     ???
  3857. Return: AX = 0000h success
  3858.          000Eh undefined function code
  3859. Note:    this interface is normally on INT 7A but can be changed via device
  3860.       driver command line arguments
  3861. --------I-7A81-------------------------------
  3862. INT 7A - IBM 3270 Workstation Program API - RESOLVE A GATE NAME
  3863.     AH = 81h
  3864.     ES:DI -> 8-char blank-padded gate name
  3865.         "SESSMGR ", "KEYBOARD", "WSCTRL     ", "MFIC    ", "PCPSM     ",
  3866.         "3270EML ", "COPY    ", "XLATE     ", "OIAM    ", "MEMORY     ",
  3867.         "INDJQRY ", or "INDJASY "
  3868. Return: DX = gate ID
  3869. --------I-7A83-------------------------------
  3870. INT 7A - IBM 3270 Workstation Program API - GET COMPLETION RESULTS
  3871.     AH = 83h
  3872.     ???
  3873. Return: ???
  3874. --------I-7AFDCB-----------------------------
  3875. INT 7A - IBM Personal Communications/3270 - INSTALLATION CHECK
  3876.     AX = FDCBh
  3877. Return: DX:AX -> PCS/3270 signature block if loaded (see below)
  3878.  
  3879. Format of signature block:
  3880. Offset    Size    Description
  3881.  04h    WORD    PCS/3270 signature (5741h)
  3882.  06h    WORD    version (0501h = PCS/3270 v1.0)
  3883. --------I-7AFE01-----------------------------
  3884. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  3885.     AX = FE01h
  3886.     ???
  3887. Return: ???
  3888. SeeAlso: AX=FE02h
  3889. --------I-7AFE02-----------------------------
  3890. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  3891.     AX = FE02h
  3892.     ???
  3893. Return: ???
  3894. SeeAlso: AX=FE01h
  3895. --------I-7AFF01-----------------------------
  3896. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  3897.     AX = FF01h
  3898.     ES:DI -> API function handler routine
  3899. Return: CX = 1200h
  3900. SeeAlso: AX=FF02h,AX=FF03h
  3901. --------I-7AFF02-----------------------------
  3902. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API TERMINATION
  3903.     AX = FF02h
  3904. Return: CX = 1200h
  3905. SeeAlso: AX=FF01h
  3906. --------I-7AFF03-----------------------------
  3907. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  3908.     AX = FF03h
  3909.     ES:DI -> send/receive function handler routine
  3910. Return: CX = 1200h
  3911. SeeAlso: AX=FF01h
  3912. --------I-7AFF04-----------------------------
  3913. INT 7A U - IBM PC3270 EMUL PROG v3 - INTERNAL ???
  3914.     AX = FF04h
  3915.     ES:DI -> ???
  3916. Return: CX = 1200h
  3917. --------f-7B---------------------------------
  3918. INT 7B - Btrieve API (single user)
  3919.     DS:DX -> 38-byte parameter record (see below)
  3920. Return: return code field set
  3921. Note:    Btrieve sets low byte of vector to 33h; this serves as the installation
  3922.       check
  3923. SeeAlso: INT 2F/AX=AB01h,INT 7F/AX=0200h
  3924.  
  3925. Format of Btrieve parameter record:
  3926. Offset    Size    Description
  3927.  00h    DWORD    pointer to data buffer
  3928.  04h    WORD    data buffer length
  3929.  06h    DWORD    pointer to 90-byte record containing positioning info
  3930.         (should be same for all calls for same file)
  3931.  0Ah    DWORD    pointer to 38-byte FCB info buffer
  3932.         (should be same for all calls for same file)
  3933.  0Eh    WORD    function code (see below)
  3934.  10h    DWORD    pointer to file name/key buffer
  3935.  14h    BYTE    key length
  3936.  15h    BYTE    key number
  3937.  16h    DWORD    pointer to status code (see below)
  3938.  1Ah    WORD    interface code (version specific)
  3939.         6176h version 5.10
  3940.  
  3941. Values for function code:
  3942.  00h    open
  3943.  01h    close
  3944.  02h    insert
  3945.  03h    update
  3946.  04h    delete
  3947.  05h    get_equal
  3948.  06h    get_next
  3949.  07h    get_prev
  3950.  08h    get_greater
  3951.  09h    get_gr_eql
  3952.  0Ah    get_less
  3953.  0Bh    get_less_eq
  3954.  0Ch    get_first
  3955.  0Dh    get_last
  3956.  0Eh    create
  3957.  0Fh    stat
  3958.  10h    extend
  3959.  11h    set_dir: set directory information
  3960.  12h    get_dir: get directory information
  3961.  13h    begin_trans
  3962.  14h    end_trans
  3963.  15h    abort_trans
  3964.  16h    get_pos: get record position number
  3965.  17h    get_direct: get data by sending record position
  3966.  18h    step_next
  3967.  19h    stop
  3968.  1Ah    version
  3969.  1Bh    unlock
  3970.  1Ch    reset
  3971.  1Dh    set owner
  3972.  1Eh    clear owner
  3973.  1Fh    create supplemental index
  3974.  20h    drop supplemental index
  3975.  21h    step first
  3976.  22h    step last
  3977.  23h    step previous
  3978.  24h    get next extended: get multiple records using a filter
  3979.  25h    get previous extended: get multiple records using a filter
  3980.  26h    step next extended: get multiple records using a filter
  3981.  27h    step previous extended: get multiple records using a filter
  3982.  28h    insert extended: insert one or more records
  3983.  31h    ???
  3984.  add 50 (32h) to any "get" operation to just return the key data
  3985.  add 100 (64h) for a single-record wait lock (automatically released on next
  3986.         get)
  3987.  add 200 (C8h) for a single-record nowait lock (nowait lock returns error 54h
  3988.         or 55h if record already locked)
  3989.  add 300 (12Ch) for a multiple-record wait lock (not released until unlock
  3990.         called)
  3991.  add 400 (190h) for a multiple-record nowait lock (nowait lock returns error
  3992.         54h or 55h if record already locked)
  3993.  
  3994. Values for status code:
  3995.  00h    successful
  3996.  01h    invalid operation
  3997.  02h    I/O error
  3998.  03h    file not open
  3999.  04h    key value not found
  4000.  05h    duplicate key value
  4001.  06h    invalid key number
  4002.  07h    different key number
  4003.  08h    invalid positioning
  4004.  09h    end of file
  4005.  0Ah    modifiable key value error
  4006.  0Bh    invalid file name
  4007.  0Ch    file not found
  4008.  0Dh    extended file error
  4009.  0Eh    pre-image open error
  4010.  0Fh    pre-image I/O error
  4011.  10h    expansion error
  4012.  11h    close error
  4013.  12h    disk full
  4014.  13h    unrecoverable error
  4015.  14h    record manager inactive
  4016.  15h    key buffer too short
  4017.  16h    data buffer length overrun
  4018.  17h    position block length
  4019.  18h    page size error
  4020.  19h    create I/O error
  4021.  1Ah    number of keys
  4022.  1Bh    invalid key position
  4023.  1Ch    invalid record length
  4024.  1Dh    invalid key length
  4025.  1Eh    not a Btrieve file
  4026.  1Fh    file already extended
  4027.  20h    extended I/O error
  4028.  22h    invalid extension name
  4029.  23h    directory error
  4030.  24h    transaction error
  4031.  25h    transaction is active
  4032.  26h    transaction control file I/O error
  4033.  27h    end/abort transaction error
  4034.  28h    transaction max files
  4035.  29h    operation not allowed
  4036.  2Ah    incomplete accelerated access
  4037.  2Bh    invalid record address
  4038.  2Ch    null key path
  4039.  2Dh    inconsistent key flags
  4040.  2Eh    access to file denied
  4041.  2Fh    maximum open files
  4042.  30h    invalid alternate sequence definition
  4043.  31h    key type error
  4044.  32h    owner already set
  4045.  33h    invalid owner
  4046.  34h    error writing cache
  4047.  35h    invalid interface
  4048.  36h    variable page error
  4049.  37h    autoincrement error
  4050.  38h    incomplete index
  4051.  39h    expanded memory error
  4052.  3Ah    compression buffer too short
  4053.  3Bh    file already exists
  4054.  3Ch    reject count reached
  4055.  3Dh    work space too small
  4056.  3Eh    incorrect descriptor
  4057.  3Fh    invalid extended insert
  4058.  40h    filter limit reached
  4059.  41h    incorrect field offset
  4060.  4Ah    automatic transaction abort
  4061.  4Eh    deadlock detected
  4062.  50h    conflict
  4063.  51h    lock error
  4064.  52h    lost position
  4065.  53h    read outside transaction
  4066.  54h    record in use
  4067.  55h    file in use
  4068.  56h    file table full
  4069.  57h    handle table full
  4070.  58h    incompatible open mode
  4071.  5Ah    redirected device table full
  4072.  5Bh    server error
  4073.  5Ch    transaction table full
  4074.  5Dh    incompatible lock type
  4075.  5Eh    permission error
  4076.  5Fh    session no longer valid
  4077.  60h    communications environment error
  4078.  61h    data message too small
  4079.  62h    internal transaction error
  4080. --------I-7B---------------------------------
  4081. INT 7B - Eicon Access API (3270/5250 gateways)
  4082. SeeAlso: INT 5C"NetBIOS"
  4083. --------A-7B---------------------------------
  4084. INT 7B CU - AutoCAD ADI INTERFACE
  4085.     AX = function
  4086.         0000h output blank line
  4087.         other ???
  4088. Return: ???
  4089. Note:    called by AutoCAD to perform its output
  4090. SeeAlso: INT 78"AutoCAD",INT 7A"AutoCAD"
  4091. --------E-7B---------------------------------
  4092. INT 7B - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ3
  4093. Note:    this vector is overwritten when GO32 starts but is not restored by
  4094.       early versions of the extender
  4095. SeeAlso: INT 0B,INT 10/AH=FFh"GO32",INT 7A"GO32",INT 7C"GO32"
  4096. --------r-7C---------------------------------
  4097. INT 7C U - IBM REXX88PC command language
  4098.     ???
  4099. --------E-7C---------------------------------
  4100. INT 7C - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ4
  4101. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  4102.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  4103. Note:    this vector is overwritten when GO32 starts but is not restored by
  4104.       early versions of the extender
  4105. SeeAlso: INT 0C,INT 7B"GO32",INT 7D"GO32"
  4106. ----------7C---------------------------------
  4107. INT 7C - PRINDIR v8.02+ - API
  4108.     AH = function
  4109.        00h set output to Invisible mode
  4110.        01h set output to LPT1
  4111.        02h set output to LPT2
  4112.        03h set output to LPT3
  4113.        04h set output to COM1
  4114.        05h set output to COM2
  4115.        06h set output to COM3
  4116.        07h set output to COM4
  4117.        08h set output to screen
  4118.        09h set output to file
  4119.        0Ah change file path
  4120.            ES:DI -> new path
  4121.            CX = length of path (max 41, but not range-checked)
  4122.        0Bh change file name
  4123.            ES:DI -> new filename
  4124.            CX = length of new name (max 41, but not range-checked)
  4125.        0Ch set redirected device
  4126.         (01h = LPT1 ... 03h = LPT3, 04h = COM1 ... 07h = COM4)
  4127.        0Dh force buffer dump
  4128.        0Eh set display color
  4129.            AL = new color attribute (see INT 10/AH=08h)
  4130.        0Fh set popup hotkey
  4131.            AL = hotkey scancode
  4132.        10h toggle byte display
  4133.            AL = new state (00h off, 01h on)
  4134.        11h change buffer flush delay
  4135.            AL = timer ticks before flush
  4136. Return: AX = status
  4137.         0000h successful
  4138.         0001h invalid function or nothing in buffer to be dumped
  4139.         (documented as "nonzero = error")
  4140. Program: PRINDIR is a shareware printer-redirection program by J.M. Allen
  4141.       Creations
  4142. Notes:    the installation check consists of testing for the ASCIZ signature
  4143.       "PRINDIR N.NN" (where N.NN is the version number) two bytes beyond
  4144.       the start of the interrupt handler
  4145.     prior versions of PRINDIR used INT 7A instead of INT 7C
  4146. SeeAlso: INT 7A"PRINDIR"
  4147. Index:    hotkeys;PRINDIR
  4148. --------N-7C---------------------------------
  4149. INT 7C - SK-UPPS/SK-PASSPORT Data Link Interface (DLI) API
  4150. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  4151.       which provides an API on top of it Data Link Interface, allowing the
  4152.       use of any of several network transport layers; this product is
  4153.       called SK-PASSPORT in the USA.
  4154. Notes:    The installation check consists of testing for the ASCII signature
  4155.      string "UPPS_DLI" immediately preceding the interrupt handler.
  4156.     To find the service interrupt being used by the driver, an application
  4157.      should scan through the interrupt table until it finds an interrupt
  4158.      vector with the "UPPS_DLI" string.
  4159.     There may be more than one DLI loaded, each having its own service
  4160.      interrupt.
  4161. SeeAlso: AX=0000h,AX=0002h,AX=000Fh
  4162. Index:    installation check;SK-UPPS
  4163. --------N-7C0000-----------------------------
  4164. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER VERSION
  4165.     AX = 0000h
  4166. Return: AH = major DLI version
  4167.     AL = minor DLI version
  4168.     DX = OEM signature (see below)
  4169.     CL = DLI 2.8+ topology: 1=Ethernet, 2=FDDI, 3=Token-Ring
  4170. SeeAlso: AX=0002h,AX=000Bh,AX=000Dh,AX=000Eh
  4171.  
  4172. OEM signatures (defined by SK):
  4173.  0001h experimental
  4174.  3343h 3COM
  4175.  4942h IBM
  4176.  4943h Intellicom
  4177.  494Eh Intel
  4178.  4B4Fh Kodiak
  4179.  4D41h Madge
  4180.  4E45h Novell
  4181.  4F43h Olicom
  4182.  5349h Siemens
  4183.  534Bh Schneider & Koch (SysKonnect)
  4184.  5744h Western Digital
  4185. --------N-7C0001-----------------------------
  4186. INT 7C - SK-UPPS Data Link Interface API - DOWN DRIVER
  4187.     AX = 0001h
  4188. Return: AX = completion code (see below)
  4189. Note:    the DLI will refuse to unload if there are any protocols
  4190.      (see AX=0007h) or clients (see AX=0010h) active.
  4191. Index:    uninstall;SK-UPPS Data Link Interface
  4192.  
  4193. Completion codes:
  4194.  0000h SUCCESS
  4195.  0005h INVALID_MULTICAST
  4196.  0006h BUFFER_TOO_SMALL
  4197.  0007h NO_BUFFERS_LEFT
  4198.  0008h NO_RESOURCES_LEFT
  4199.  000Bh ILLEGAL_PROTOCOL_ID
  4200.  000Ch PROTOCOL_IN_USE
  4201.  000Dh NO_MULTICAST_ADDRESS
  4202.  000Fh PROTOCOLS_ACTIVE
  4203.  0010h CLIENTS_ACTIVE
  4204.  001Bh INVALID_MODE
  4205.  001Ch MODE_NOT_SUPPORTED
  4206.  FFFFh UNKNOWN_SERVICE
  4207. --------N-7C0002-----------------------------
  4208. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATUS
  4209.     AX = 0002h
  4210.     ES:DI -> Status Information Block (SIB) (see AX=000Eh, description of
  4211.         Driver Information Block)
  4212. Return: AX = completion code (see AX=0001h)
  4213. Note:    GET DRIVER INFO (AX=000Eh) should be used instead.
  4214. SeeAlso: AX=0000h,AX=000Bh,AX=000Dh,AX=000Eh
  4215. --------N-7C0003-----------------------------
  4216. INT 7C - SK-UPPS Data Link Interface API - CHANGE DRIVER ADDRESS
  4217.     AX = 0003h
  4218.     ES:DI -> new node address (6 bytes)
  4219. Return: AX = completion code (see AX=0001h)
  4220. Note:    the DLI will refuse to change the address if any protocols
  4221.       (see AX=0007h) are active
  4222. SeeAlso: AX=0001h,AX=000Eh
  4223. --------N-7C0004-----------------------------
  4224. INT 7C - SK-UPPS Data Link Interface API - REQUEST BUFFER
  4225.     AX = 0004h
  4226.     DX = protocol id (see AX=0007h)
  4227. Return: AX = completion code (see also AX=0001h)
  4228.         0000h successful
  4229.         ES:BX -> Memory Buffer (Mbuf) (see below)
  4230. Note:    if the DLI has no free Mbufs, it will set an internal flag for the
  4231.      protocol and later call the protocol's Event Upcall with
  4232.      EV_BUFFER_AVAILABLE (see AX=0007h) as soon as an Mbuf becomes
  4233.      available.  There will only be one "buffer available" Upcall, even
  4234.      if this function has been called several times before.
  4235. SeeAlso: AX=0005h,AX=0006h,AX=0012h,AX=0013h
  4236.  
  4237. Format of Memory Buffer (Mbuf):
  4238. Offset    Size    Description
  4239.  00h    DWORD    -> NEXT Mbuf (linked list)
  4240.  04h    WORD    OFFSET of actual data within DATA area
  4241.  06h  2 BYTEs    reserved (currently unused)
  4242.  08h    WORD    LENGTH of actual data found in DATA area starting at OFFSET
  4243.  0Ah  2 BYTEs    reserved (currently unused)
  4244.  0Ch    DWORD    -> DATA area (size can be obtained via AX=000Eh call)
  4245.  10h    WORD    PROTOCOL ID of protocol currently "owning" the Mbuf
  4246.  12h    BYTE    IN USE flag; nonzero if Mbuf still in use by DLI (see AX=0006h)
  4247.  13h    BYTE    RECEIVE STATUS (bit 0-7 only; see AX=0007h - Receive Upcall)
  4248. --------N-7C0005-----------------------------
  4249. INT 7C - SK-UPPS Data Link Interface API - RELEASE BUFFER
  4250.     AX = 0005h
  4251.     ES:BX -> Mbuf (see AX=0004h)
  4252. Return: nothing
  4253. SeeAlso: AX=0004h
  4254. --------N-7C0006-----------------------------
  4255. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME
  4256.     AX = 0006h
  4257.     ES:BX -> Mbuf (see AX=0004h)
  4258. Return: nothing
  4259. Notes:    The DLI will send LENGTH bytes found in the Mbuf's DATA area starting
  4260.      at OFFSET. A complete and valid frame must be stored there. The DLI
  4261.      will only copy the current node address (see AX=0003h) to the
  4262.      source node field of the frame's MAC header.
  4263.     On Ethernet, the DLI will always send a minimum of 60 bytes, regardless
  4264.      of the value found in the LENGTH field.
  4265.     Returns immediately; the DLI will call the protocol's Transmit Upcall
  4266.      (see AX=0007h) when the frame has been sent.
  4267.     The Mbuf's IN USE field will be non-zero until the DLI calls the
  4268.      Transmit Upcall.
  4269. SeeAlso: AX=0002h,AX=0004h,AX=0013h
  4270.  
  4271. Transmit Upcall called with:
  4272.     ES:BX -> Mbuf (NEXT field destroyed)
  4273.     interrupts disabled
  4274. Note:    On FDDI the bytes of the source and destination node fields in the MAC
  4275.      header have been bit-swapped to physical address format.
  4276. --------N-7C0007-----------------------------
  4277. INT 7C - SK-UPPS Data Link Interface API - REGISTER PROTOCOL
  4278.     AX = 0007h
  4279.     ES:BX -> Protocol Control Block (see below)
  4280. Return: AX = completion code (see AX=0001h)
  4281. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  4282.       which provides an API on top of it Data Link Interface, allowing the
  4283.       use of any of several network transport layers
  4284. SeeAlso: AX=0008h,AX=000Bh
  4285.  
  4286. Format of Protocol Control Block (PCB):
  4287. Offset    Size    Description
  4288.  00h    WORD    protocol type (high-low)
  4289.  02h    WORD    protocol mode (see below)
  4290.  04h    DWORD    -> Receive Upcall routine
  4291.  08h    DWORD    -> Transmit Upcall routine
  4292.  0Ch    DWORD    -> Event Upcall routine
  4293.  10h    DWORD    -> ASCIZ protocol name (zero if none)
  4294.  14h    WORD    protocol id will be returned here (always non-zero)
  4295.  
  4296. Bitfields for protocol mode:
  4297.  bit 0    promiscuous mode; protocol receives all frames regardless of their
  4298.      destination (PROTOCOL TYPE must be FFFFh)
  4299.  bit 1    if set, protocol's Event Upcall will be called on entry and exit of the
  4300.      DLI's Interrupt Service Routine (see event codes below)
  4301.  bit 2    DLI 2.2+ hook mode; protocol receives all directed frames destined for
  4302.      this station (PROTOCOL TYPE must be FFFFh)
  4303.  bit 3    DLI 2.3+ receive error frames (only valid in promiscuous mode (bit 0))
  4304.  bit 4-5 DLI 2.5+ frame type:
  4305.     00 Ethernet II; specify type code in PROTOCOL TYPE field (high-low)
  4306.     01 IEEE 802.2; specify Service Access Point (SAP) in MSB
  4307.         (offset 0) of PROCOTOL TYPE field; LSB must be zero
  4308.     10 IEEE 802.2 with SNAP header; specify type code in PROTOCOL TYPE
  4309.         field (high-low)
  4310.     11 reserved (currently unused)
  4311.  bit 6    DLI 2.5+ if set, protocol's Event Upcall will be called with event code
  4312.      EV_BUFFER_WANTED, when DLI runs out of Mbufs
  4313.  bit 7    DLI 2.7+ chain mode; if set, client allows the specified frame type to
  4314.      be shared with other clients
  4315.  bit 8    DLI 2.8+ receive non-LLC frames rather than LLC frames
  4316.  bit 9    DLI 2.8+ receive all multicast frames (see also AX=0009h)
  4317.  bit 10-15 reserved (currently unused; must be zero)
  4318. Notes:    If PROTOCOL TYPE is FFFFh and neither the "promiscuous" nor the "hook"
  4319.      mode bit is set, the protocol receives all frames that did not match
  4320.      any registered frame type (demultiplexor mode).
  4321.     Protocols using "promiscuous", "hook" or "chain" mode should always
  4322.      return from the Receive Upcall with the received Mbuf in ES:BX and the
  4323.      Carry Flag set. The DLI will then pass the Mbuf to the FEED BACK
  4324.      BUFFER function (see AX=000Fh).
  4325.     Some DLIs do not support all or even any of the "promiscuous",
  4326.      "receive non-LLC" and "receive all multicasts" mode bits.
  4327.  
  4328. Receive Upcall called with:
  4329.  ES:BX -> Mbuf
  4330.  AX = receive status (see below; also stored in Mbuf's RECEIVE STATUS field)
  4331.  interrupts disabled
  4332.  
  4333. Bitfields for receive status (reserved bits currently unused and always zero):
  4334.  bit 0-2 reserved
  4335.  bit 3    frame check sequence (FCS) error
  4336.  bit 4    overflow (frame too long)
  4337.  bit 5    framing error
  4338.  bit 6    reserved
  4339.  bit 7    non-LLC frame (see bit 8 of PCB's protocol mode field)
  4340.  bit 8-15 reserved
  4341. Notes:    The protocol's Receive Upcall routine will be called whenever a frame
  4342.      matching the specified frame type is received. A received frame is
  4343.      passed to the protocol in the Mbuf's DATA area at OFFSET and its size
  4344.      is LENGTH bytes.
  4345.     The receive status passed to the Receive Upcall in register AL is
  4346.      always zero, except for protocols using "non-LLC" mode (bit 8 of PCB's
  4347.      protocol mode field) or "promiscuous" mode together with "receive
  4348.      error frames" (bits 0 & 3).
  4349.     Upcalls are FAR routines and must return with a RET FAR. If the Carry
  4350.      Flag is set on return from a Receive or Transmit Upcall, then ES:BX
  4351.      must point to an Mbuf, which the DLI will then pass to the RELEASE
  4352.      BUFFER function (see AX=0005h). See also notes for PROTOCOL MODE.
  4353.  
  4354. Event Upcall called with:
  4355.  AX = event code (see below)
  4356. Note:    All Event Upcalls may be ignored by the protocol.
  4357.  
  4358. Event codes found in register AX on Event Upcall:
  4359.  00h EV_BUFFER_AVAILABLE  client may now call REQUEST BUFFER (AX=0004h)
  4360.  01h EV_ISR_START    start of Interrupt Service Routine
  4361.  02h EV_ISR_END        end of ISR (see bit 1 in PCB's protocol mode field)
  4362.  03h EV_BUFFER_WANTED    DLI temporarily out of Mbufs
  4363.  04h EV_NETWORK_STATUS    DLI 2.8+ network status (DX=status; see below)
  4364.  05h EV_IO_CONTROL    DLI 2.8+ I/O control (DX=subfunction; see AX=0016h)
  4365.  
  4366. Bitfields for EV_NETWORK_STATUS in register DX:
  4367.     Token-Ring        FDDI
  4368.  bit 15 SIGNAL_LOSS        SIGNAL_LOSS
  4369.  bit 14 HARD_ERROR        HARD_ERROR
  4370.  bit 13 SOFT_ERROR        SOFT_ERROR
  4371.  bit 12 TRANSMIT_BEACON        TRANSMIT_BEACON
  4372.  bit 11 LOBE_WIRE_FAULT        PATH_TEST_FAILED
  4373.  bit 10 AUTO_REMOVAL        SELF_TEST_REQUIRED
  4374.  bit 9    reserved        reserved
  4375.  bit 8    REMOVE_RECEIVED        REMOTE_DISCONNECT
  4376.  bit 7    COUNTER_OVERFLOW    reserved
  4377.  bit 6    SINGLE_STATION        DUPLICATE_ADDRESS
  4378.  bit 5    RING_RECOVERY        NO_RING_OP_STATUS
  4379.  bit 4    reserved        VERSION_MISMATCH
  4380.  bit 3    reserved        STUCK_BYPASS
  4381.  bit 2    reserved        FDDI_EVENT
  4382.  bit 1    reserved        RING_OP_CHANGE
  4383.  bit 0    reserved        reserved
  4384. Note:    EV_NETWORK_STATUS is not supported on Ethernet
  4385. --------N-7C0008-----------------------------
  4386. INT 7C - SK-UPPS Data Link Interface API - DISABLE PROTOCOL
  4387.     AX = 0008h
  4388.     BX = protocol id (see AX=0007h)
  4389. Return: AX = completion code (see AX=0001h)
  4390. Note:    the DLI will handle any Mbufs given to TRANSMIT FRAME (AX=0006h) as if
  4391.      they had been given to TRANSMIT FRAME RELEASE (AX=0013h).
  4392.     all multicast addresses registered for this protocol will be disabled.
  4393.     after this function returns, the protocol's Upcall routines will no
  4394.      longer be called.
  4395. SeeAlso: AX=0007h,AX=000Bh
  4396. --------N-7C0009-----------------------------
  4397. INT 7C - SK-UPPS Data Link Interface API - REGISTER MULTICAST
  4398.     AX = 0009h
  4399.     BX = protocol id (see AX=0007h)
  4400.     ES:DI -> multicast address (6 bytes)
  4401. Return: AX = completion code (see AX=0001h)
  4402. Notes:    The broadcast address is always enabled.
  4403.     Set bit 9 of PCB's protocol mode field in REGISTER PROTOCOL call
  4404.      (AX=0007h) to receive all multicast frames.
  4405. SeeAlso: AX=000Ah,AX=0014h
  4406. --------N-7C000A-----------------------------
  4407. INT 7C - SK-UPPS Data Link Interface API - DISABLE MULTICAST
  4408.     AX = 000Ah
  4409.     BX = protocol id (see AX=0007h)
  4410.     ES:DI -> multicast address (6 bytes)
  4411. Return: AX = completion code (see AX=0001h)
  4412. SeeAlso: AX=0009h,AX=0014h
  4413. --------N-7C000B-----------------------------
  4414. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL LIST
  4415.     AX = 000Bh
  4416.     ES:DI -> protocol id buffer
  4417.     CX = number of 2-byte protocol ids that may be stored in buffer
  4418. Return: AX = completion code (see AX=0001h)
  4419.     CX = number of active protocols (regardless of value returned in AX)
  4420.     protocol id buffer filled with active protocol ids
  4421. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  4422.       which provides an API on top of it Data Link Interface, allowing the
  4423.       use of any of several network transport layers
  4424. Note:    If the buffer supplied is too small, CX still contains the total number
  4425.      of active protocols and the buffer has been filled until full.
  4426. SeeAlso: AX=000Ch,AX=0014h
  4427. --------N-7C000C-----------------------------
  4428. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL STATUS
  4429.     AX = 000Ch
  4430.     BX = protocol id (see AX=000Bh)
  4431.     ES:DI -> Protocol Status Block (see below)
  4432. Return: AX = completion code (see AX=0001h)
  4433. SeeAlso: AX=000Bh,AX=0014h
  4434.  
  4435. Format of Protocol Status Block (PSB):
  4436. Offset    Size    Description
  4437.  00h    DWORD    -> ASCIZ protocol name
  4438.  04h    WORD    protocol mode (see AX=0007h)
  4439.  06h    WORD    protocol type (see AX=0007h)
  4440.  08h    WORD    number of registered multicasts (see AX=0009h, AX=0014h)
  4441. --------N-7C000D-----------------------------
  4442. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATISTICS
  4443.     AX = 000Dh
  4444.     BX = flag: 0=don't clear statistics, 1=clear statistics
  4445.     ES:DI -> Statistics Data Block (see below)
  4446. Return: AX = completion code (see AX=0001h)
  4447. SeeAlso: AX=0002h,AX=0015h
  4448.  
  4449. Format of Statistics Data Block (SDB):
  4450. Offset    Size    Description
  4451.  00h    DWORD    node uptime in ticks (1/18.21 sec.)
  4452.  04h    DWORD    bytes received
  4453.  08h    DWORD    bytes transmitted
  4454.  0Ch    DWORD    frames received
  4455.  10h    DWORD    frames transmitted
  4456.  14h    DWORD    multicast bytes received
  4457.  18h    DWORD    multicast frames received
  4458.  1Ch    DWORD    unrecognized frames
  4459.  20h    WORD    missed frames
  4460.  22h    WORD    frame check sequence (FCS) errors
  4461.  24h    WORD    framing errors
  4462.  26h    WORD    babbling errors
  4463.  28h    WORD    late collision errors
  4464.  2Ah    WORD    loss of carrier errors
  4465.  2Ch    WORD    16 retries failed errors
  4466.  2Eh    WORD    overflow errors
  4467. Note:    fields 26h through 2Ch are always zero, except in some very old
  4468.       versions of the DLI.    Use GET MEDIA STATISTICS (AX=0015h) to get
  4469.       more detailed information.
  4470. --------N-7C000E-----------------------------
  4471. INT 7C - SK-UPPS Data Link Interface API - DLI 2.5+ - GET DRIVER INFO
  4472.     AX = 000Eh
  4473.     ES:DI -> Driver Information Block (see below)
  4474.     BX = offset of 1st field within DIB to be returned
  4475.     CX = number of bytes to be returned
  4476. Return: AX = completion code (see AX=0001h)
  4477.     CX = number of bytes copied (regardless of value returned in AX)
  4478. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  4479.       which provides an API on top of it Data Link Interface, allowing the
  4480.       use of any of several network transport layers
  4481. SeeAlso: AX=0000h,AX=0002h,AX=000Bh,AX=000Dh,AX=0015h
  4482.  
  4483. Format of Driver Information Block (DIB):
  4484. Offset    Size    Description
  4485.  00h  6 BYTEs    physical node address (from adapter's ROM)
  4486.  06h  6 BYTEs    current node address (see AX=0003h)
  4487.  0Ch    BYTE    adapter id (defined by OEM)
  4488.  0Dh    BYTE    IRQ line (FFh if none)
  4489.  0Eh    DWORD    -> shared memory (zero if none)
  4490.  12h    DWORD    size of shared memory (zero if none)
  4491.  16h    WORD    base I/O port (zero if none)
  4492.  18h    BYTE    DMA line (FFh if none)
  4493.  19h    BYTE    DLI 2.4+ topology (see AX=0000h)
  4494.  1Ah    WORD    size of an Mbuf's DATA area (see AX=0004h)
  4495.  1Ch  2 BYTEs    reserved (currently unused)
  4496.  1Eh    WORD    total number of Mbufs the DLI has
  4497.  20h    WORD    maximum number of Mbufs that can be allocated via REQUEST
  4498.          BUFFER (AX=0004h) and SYNC REQUEST BUFFER (AX=0012h)
  4499.  ---- end of Status Information Block returned by GET DRIVER STATUS (AX=0002h)
  4500.  22h    DWORD    -> ASCIZ adapter name
  4501.  26h    WORD    number of I/O ports used (zero if none)
  4502.  28h    DWORD    line speed in bits/sec.
  4503. --------N-7C000F-----------------------------
  4504. INT 7C - SK-UPPS Data Link Interface API - FEED BACK BUFFER
  4505.     AX = 000Fh
  4506.     ES:BX -> Mbuf
  4507. Return: nothing
  4508. Notes:    A protocol may call this function instead of returning the Mbuf
  4509.      directly from the Receive Upcall if it is running in "promiscuous",
  4510.      "hook" or "chain" mode.
  4511. SeeAlso: AX=0007h
  4512. --------N-7C0010-----------------------------
  4513. INT 7C - SK-UPPS Data Link Interface API - CLIENT HOOK
  4514.     AX = 0010h
  4515. Return: nothing
  4516. Notes:    An application having no active protocols may call this function to
  4517.      prevent the DLI from unloading.
  4518. SeeAlso: AX=0001h,AX=0011h
  4519. --------N-7C0011-----------------------------
  4520. INT 7C - SK-UPPS Data Link Interface API - CLIENT UNHOOK
  4521.     AX = 0011h
  4522. Return: nothing
  4523. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  4524.       which provides an API on top of it Data Link Interface, allowing the
  4525.       use of any of several network transport layers
  4526. SeeAlso: AX=0010h
  4527. --------N-7C0012-----------------------------
  4528. INT 7C - SK-UPPS Data Link Interface API - SYNC REQUEST BUFFER
  4529.     AX = 0012h
  4530.     DX = protocol id (see AX=0007h)
  4531. Return: AX = completion code (see AX=0001h)
  4532.     if AX=0000h: ES:BX -> Mbuf (see AX=0004h)
  4533. Note:    If the protocol wants to be informed when an Mbuf becomes available,
  4534.      REQUEST BUFFER (AX=0004h) should be used instead.
  4535. SeeAlso: AX=0004h,AX=0005h,AX=0006h,AX=0013h
  4536. --------N-7C0013-----------------------------
  4537. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME RELEASE
  4538.     AX = 0013h
  4539.     ES:BX -> Mbuf (see AX=0004h)
  4540. Return: nothing
  4541. Notes:    Returns immediately; The protocol's Transmit Upcall will NOT be called.
  4542.     The Mbuf may no more be used by the protocol in any way (i.e. the
  4543.      Mbuf's IN USE field may not be polled).
  4544. SeeAlso: AX=0004h,AX=0013h
  4545. --------N-7C0014-----------------------------
  4546. INT 7C - SK-UPPS Data Link Interface API - GET MULTICAST LIST
  4547.     AX = 0014h
  4548.     BX = protocol id (see AX=000Bh)
  4549.     ES:DI -> multicast address buffer
  4550.     CX = number of 6-byte multicast addresses that may be stored in buffer
  4551. Return: AX = completion code (see AX=0001h)
  4552.     CX = number of registered multicast addresses for this protocol
  4553.      (regardless of value returned in AX)
  4554.     multicast address buffer filled with multicast addresses registered for
  4555.      this protocol
  4556. Note:    If the buffer supplied is too small, CX still contains the total number
  4557.      of registered multicast addresses for this protocol and the buffer has
  4558.      been filled until full.
  4559. SeeAlso: AX=000Bh,AX=0009h,AX=000Ch
  4560. --------N-7C0015-----------------------------
  4561. INT 7C - SK-UPPS Data Link Interface API - DLI 2.6+ - GET MEDIA STATISTICS
  4562.     AX = 0015h
  4563.     ES:DI -> media-specific statistics buffer (see below)
  4564.     BX = offset of 1st field within MSS to be returned
  4565.     CX = number of bytes to be returned
  4566. Return: AX = completion code (see AX=0001h)
  4567.     CX = number of bytes copied (regardless of value returned in AX)
  4568. Note:    not supported by all DLIs (will return AX=FFFFh if not supported).
  4569. SeeAlso: AX=0000h,AX=000Dh
  4570.  
  4571. Format of media-specific statistics for Ethernet:
  4572. Offset    Size    Description
  4573.  00h    DWORD    alignment errors
  4574.  04h    DWORD    frame check sequence (FCS) errors
  4575.  08h    DWORD    single collision frames
  4576.  0Ch    DWORD    multiple collision frames
  4577.  10h    DWORD    signal quality error (SQE) test errors
  4578.  14h    DWORD    deferred transmissions
  4579.  18h    DWORD    late collisions
  4580.  1Ch    DWORD    excessive collisions
  4581.  20h    DWORD    internal MAC transmit errors
  4582.  24h    DWORD    carrier sense errors
  4583.  28h    DWORD    excessive deferrals
  4584.  2Ch    DWORD    frame too longs
  4585.  30h    DWORD    in range length errors
  4586.  34h    DWORD    out of range length fields
  4587.  38h    DWORD    internal MAC receive errors
  4588.  
  4589. Format of media-specific statistics for FDDI:
  4590. Offset    Size    Description
  4591.  00h    DWORD    SMT operating version id (refer to ANSI 7.1.2.2)
  4592.  04h    DWORD    SMT CF state: 1=Isolated, 2= Wrap_S, 3=Wrap_A, 4=Wrap_B,
  4593.          5=Wrap_AB, 6=Thru (refer to ANSI SMT 9.7.4.3)
  4594.  08h    DWORD    SMT frames sent
  4595.  0Ch    DWORD    SMT frames received
  4596.  10h    DWORD    SMT ring up count
  4597.  14h  6 BYTEs    MAC upstream neighbour
  4598.  1Ah  6 BYTEs    MAC downstream neighbour
  4599.  20h    DWORD    MAC frame counter (refer to ANSI MAC 2.2.1)
  4600.  24h    DWORD    MAC error counter ( " )
  4601.  28h    DWORD    MAC lost counter ( " )
  4602.  2Ch    BYTE    port 1 link error estimate (ranges from 10**-4 to 10**-15 and
  4603.          is reported as the absolute value of the exponent)
  4604.  2Dh    BYTE    port 2 link error estimate ( " )
  4605.  2Eh  2 BYTEs    reserved (currently unused)
  4606.  30h    DWORD    attachment class: 1=single-attachment (S PORT),
  4607.          2=dual-attachment (A/B PORT pairs), 3=concentrator (M PORTs)
  4608.  34h    DWORD    attachment optical bypass present: 1=true, 2=false
  4609.  
  4610. Format of media-specific statistics for Token-Ring:
  4611. Offset    Size    Description
  4612.  00h  6 BYTEs    upstream neighbour
  4613.  06h    WORD    local ring number
  4614.  08h    DWORD    ring up count
  4615.  0Ch    DWORD    signal loss errors
  4616.  10h    DWORD    lobe wire faults
  4617.  14h    DWORD    ring recovery count
  4618.  18h    DWORD    line errors
  4619.  1Ch    DWORD    burst errors
  4620.  20h    DWORD    ARI/FCI errors
  4621.  24h    DWORD    lost frame errors
  4622.  28h    DWORD    receive congestion errors
  4623.  2Ch    DWORD    frame copied errors
  4624.  30h    DWORD    token errors
  4625.  34h    DWORD    DMA bus errors
  4626.  38h    DWORD    DMA parity errors
  4627.  3Ch    DWORD    receive overflow errors
  4628. --------N-7C0016-----------------------------
  4629. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - DRIVER IO CONTROL
  4630.     AX = 0016h
  4631.     DX = subfunction; bits 14-15 specify direction of I/O:
  4632.         00 no data at all (ES:BX undefined)
  4633.         01 driver -> application (GET)
  4634.         10 application -> driver (SET)
  4635.         11 both directions (GET/SET)
  4636.     ES:BX -> I/O buffer (optional)
  4637.     CX = size of buffer (if ES:BX valid)
  4638. Return: AX = completion code; defined by OEM
  4639. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  4640.       which provides an API on top of it Data Link Interface, allowing the
  4641.       use of any of several network transport layers
  4642. Notes:    not supported by all DLIs (will return AX=FFFFh if not supported)
  4643.     subfunction codes are defined by OEMs
  4644. SeeAlso: AX=0001h
  4645. --------N-7C0017-----------------------------
  4646. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - INTERRUPT REQUEST
  4647.     AX = 0017h
  4648. Return: AX = completion code (see AX=0001h)
  4649. Notes:    not supported by all DLIs (will return AX=FFFFh, if not supported).
  4650.     must be called with interrupts disabled; when the client re-enables
  4651.      interrupts, an interrupt will be generated and reported to the client
  4652.      through an Event Upcall (see AX=0007h [EV_ISR_START/EV_ISR_END])
  4653. SeeAlso: AX=0007h
  4654. --------t-7D---------------------------------
  4655. INT 7D - [obsoleted proposal] - ALTERNATE MULTIPLEX INTERRUPT
  4656. Note:    this interface has been moved to INT 2D; there are no known
  4657.       implementations on INT 7D
  4658. SeeAlso: INT 2D,INT 2F
  4659. --------S-7D---------------------------------
  4660. INT 7D U - YTERM 1.4 - CLOCK SUPPORT
  4661. SeeAlso: INT 7E"YTERM"
  4662. --------E-7D---------------------------------
  4663. INT 7D - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ5
  4664. Note:    this vector is overwritten when GO32 starts but is not restored by
  4665.       early versions of the extender
  4666. SeeAlso: INT 0D,INT 7C"GO32",INT 7E"GO32"
  4667. --------U-7D---------------------------------
  4668. INT 7D - HyperPAD v2.2 - API ACCESS
  4669. Note:    this vector is hooked but immediately passed on (without checking
  4670.       whether the previous handler was 0000h:0000h).  The sole purpose of
  4671.       this vector is to provide the address of the data area described
  4672.       below.
  4673.  
  4674. Format of HyperPAD data area:
  4675. Offset    Size    Description
  4676.  -16h    DWORD    pointer to ??? FAR function
  4677.  -12h    DWORD    pointer to callback setting function
  4678.         [C calling conventions, (*callback)(int (_loadds far *)()) ]
  4679.  -0Eh 6 BYTEs    signature "BRC001"
  4680.  -08h    DWORD    pointer to previous INT 7D handler
  4681.  -04h    DWORD    pointer to ??? data
  4682.  00h        HyperPAD INT 7D handler
  4683. ----------7D00-------------------------------
  4684. INT 7D - SCSILink - RESET SCSI BUS
  4685.     AH = 00h
  4686. Program: SCSILink is a TSR by Cross Products Ltd which allows its PC-hosted
  4687.       cross assemblers and similar products to communicate with Cross
  4688.       Products hardware debuggers
  4689. Desc:    reset all devices on the SCSI bus
  4690. Note:    the installation check is the signature "SCSILINK" immediately prior
  4691.       to the interrupt handler
  4692. Index:    installation check;SCSILink
  4693. ----------7D01-------------------------------
  4694. INT 7D - SCSILink - CONNECT TO TARGET
  4695.     AH = 01h
  4696.     AL = target ID
  4697. Return: CF clear if successful
  4698.     CF set on error
  4699.         AL = initiator error
  4700.         AH = target error
  4701. Desc:    arbitrate the use of the bus and select the specified target device
  4702. ----------7D02-------------------------------
  4703. INT 7D - SCSILink - SEND COMMAND
  4704.     AH = 02h
  4705.     ES:BX -> parameter block (see below)
  4706. Return: CF clear if successful
  4707.     CF set on error
  4708.         AL = initiator error
  4709.         AH = target error
  4710. Desc:    send the specified command block to the target device and perform any
  4711.       related I/O
  4712.  
  4713. Format of parameter block:
  4714. Offset    Size    Description
  4715.  00h    DWORD    size of command block
  4716.  04h    DWORD    address of command block (see below)
  4717.  08h    DWORD    size of buffer
  4718.  0Ch    DWORD    address of buffer
  4719.  
  4720. Format of command block:
  4721. Offset    Size    Description
  4722.  00h        info not yet available
  4723. ----------7D03-------------------------------
  4724. INT 7D - SCSILink - SET TIMEOUT
  4725.     AH = 03h
  4726.     AL = timeout selector (see below)
  4727.     BX = new value in 55ms ticks
  4728. Desc:    change an internal timeout value to allow communication with very
  4729.       slow targets
  4730.  
  4731. Values for timeout selector:
  4732.  00h    time to wait for bus (default 18)
  4733.  01h    time to wait for new phase (default 5)
  4734.  02h    maximum time to send/receive block (default 18)
  4735.  03h    time to wait for reselect (default 180)
  4736. ----------7D04-------------------------------
  4737. INT 7D - SCSILink - GET ERROR STRING
  4738.     AH = 04h
  4739.     AL = error number
  4740. Return: ES:BX -> ASCIZ error string for error number
  4741. ----------7D05-------------------------------
  4742. INT 7D - SCSILink - GET ADDRESS
  4743.     AH = 05h
  4744. Return: AL = DMA channel
  4745.     AH = initiator ID
  4746.     BX = card address
  4747. Desc:    determine the current hardware configuration
  4748. ----------7D06-------------------------------
  4749. INT 7D - SCSILink - PUT DATA
  4750.     AH = 06h
  4751.     CX = number of bytes to store (0001h-0100h)
  4752.     ES:BX -> data to be saved
  4753. Return: CF clear if successful
  4754.     CF set on error
  4755.         AL = error code (01h = too much data)
  4756. Note:    the specified data is stored in SCSILink's PSP
  4757. SeeAlso: AH=07h
  4758. ----------7D07-------------------------------
  4759. INT 7D - SCSILink - GET DATA
  4760.     AH = 07h
  4761.     CX = number of bytes to retrieve (0001h-0100h)
  4762.     ES:BX -> buffer for data
  4763. Return: CF clear if successful
  4764.     CF set on error
  4765.         AL = error code (01h = too much data)
  4766. Note:    retrieve data previously stored with AH=06h
  4767. SeeAlso: AH=06h
  4768. ----------7D08-------------------------------
  4769. INT 7D - SCSILink - TERMINATE SESSION
  4770.     AH = 08h
  4771. Desc:    indicate to any other programs that intercept INT 7D that the program
  4772.       has finished with the link
  4773. Note:    the program should call this function even if a SCSI error caused its
  4774.       termination
  4775. ----------7D09-------------------------------
  4776. INT 7D - SCSILink - POLL REQUEST
  4777.     AH = 09h
  4778.     AL = target ID
  4779. Return: AL = status
  4780.         FEh resident driver experienced SCSI error
  4781.         FFh resident driver handleded event
  4782. Desc:    give any drivers chained onto INT 7D a chance to handle an exception
  4783.       not specifically handled by the calling program
  4784. Notes:    this service exists so that resident disk servers, etc. can continue
  4785.       running even while debuggers and profilers are active
  4786.     the resident driver assumes that a connection has been established and
  4787.       attempts to leave the target connected
  4788. --------*-7E---------------------------------
  4789. INT 7E - RESERVED FOR DIP, Ltd. ROM LIBRARY
  4790. --------S-7E---------------------------------
  4791. INT 7E U - YTERM 1.4 - ???
  4792. SeeAlso: INT 7D"YTERM",INT 7F"YTERM"
  4793. --------E-7E---------------------------------
  4794. INT 7E - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ6
  4795. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  4796.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  4797. Note:    this vector is overwritten when GO32 starts but is not restored by
  4798.       early versions of the extender
  4799. SeeAlso: INT 0E,INT 7D"GO32",INT 7F"GO32"
  4800. --------m-7E5857BL57-------------------------
  4801. INT 7E - XLOAD - INSTALLATION CHECK
  4802.     AX = 5857h
  4803.     BL = 57h
  4804. Return: AX = 0000h if installed
  4805. Program: XLOAD is the LOADHIGH-equivalent from Helix Software's Netroom
  4806. SeeAlso: AX=5857h/BL=5Ah,AX=5857h/BL=5Bh
  4807. --------m-7E5857BL5A-------------------------
  4808. INT 7E - XLOAD - GET ???
  4809.     AX = 5857h
  4810.     BL = 5Ah
  4811. Return: AX = 0000h
  4812.     CX = ???
  4813.     DS:SI -> ???
  4814. SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Bh
  4815. --------m-7E5857BL5B-------------------------
  4816. INT 7E - XLOAD - GET XLOAD MEMORY SIZE
  4817.     AX = 5857h
  4818.     BL = 5Bh
  4819. Return: AX = 0000h
  4820.     CX = segment of XLOAD TSR
  4821.     DX = size of memory block in which XLOAD TSR is located
  4822. SeeAlso: AX=5857h/BL=57h/AX=5857h/BL=5Ah
  4823. --------V-7F---------------------------------
  4824. INT 7F - IBM XGA - ???
  4825. --------V-7F---------------------------------
  4826. INT 7F - Halo88 - API
  4827.     BX = function
  4828.         64h arc
  4829.         65h bar
  4830.         66h box
  4831.         67h circle
  4832.         68h clr
  4833.         69h default hatch style
  4834.         6Ah default line style
  4835.         6Bh delhcur
  4836.         6Ch delln / deltcur
  4837.         6Dh ellipse
  4838.         6Eh fill
  4839.         6Fh flood
  4840.         70h flood2
  4841.         71h init graphics
  4842.         72h init hcur
  4843.         73h init marker
  4844.         74h init tcur
  4845.         75h inqarc
  4846.         76h inqbknd
  4847.         77h inqclr
  4848.         78h inqerr
  4849.         79h inqgcur
  4850.         7Ah inqhcur
  4851.         7Bh inqmarker
  4852.         7Dh inqtcur
  4853.         7Eh inqtext
  4854.         7Fh lnabs
  4855.         80h lnrel
  4856.         81h markerabs
  4857.         82h markerrel
  4858.         83h moveabs
  4859.         84h movehcurabs
  4860.         85h movehcurrel
  4861.         86h moverel
  4862.         87h movetcurabs
  4863.         88h movetcurrel
  4864.         89h movefrom
  4865.         8Ah moveto
  4866.         8Bh pie
  4867.         8Ch polylnabs
  4868.         8Dh polylnrel
  4869.         8Eh ptabs
  4870.         8Fh ptrel
  4871.         91h setasp
  4872.         92h set color
  4873.         93h set font
  4874.         94h set hatch style
  4875.         95h set line style
  4876.         97h settext
  4877.         98h set text color
  4878.         99h btext
  4879.         9Ah setseg
  4880.         9Bh display
  4881.         9Ch setscreen
  4882.         9Eh close graphics
  4883.         9Fh ftinit
  4884.         A0h ftlocate
  4885.         A1h ftext
  4886.         A5h set viewport
  4887.         A6h set window
  4888.         A7h set world
  4889.         AAh ftcolor
  4890.         ACh initlp
  4891.         ADh inqasp
  4892.         AEh inqdev
  4893.         AFh inqdisplay
  4894.         B0h inqft
  4895.         B1h inqftcolor
  4896.         B2h inqinterlace
  4897.         B3h inqlpa
  4898.         B4h inqlpg
  4899.         B5h inqmode
  4900.         B6h inqscreen
  4901.         B7h inqversion
  4902.         B8h roam
  4903.         B9h scroll
  4904.         BAh setieee
  4905.         BBh set interlace
  4906.         BCh shift
  4907.         BDh start graphics
  4908.         BEh vpan
  4909.         CBh gwrite
  4910.         CCh gread
  4911.         CDh setxor
  4912.         CEh rbox
  4913.         CFh rcir
  4914.         D0h rlnabs
  4915.         D1h rlnrel
  4916.         D2h delbox
  4917.         D3h delcir
  4918.         D5h setseg2
  4919.         DCh worldoff
  4920.         DDh mapwtod
  4921.         DEh mapdtow
  4922.         DFh mapwton
  4923.         E0h mapntow
  4924.         E1h mapdton
  4925.         E2h mapntod
  4926.         E3h inqworld
  4927.         E4h inqviewport
  4928.         E5h set line width
  4929.         E6h lnjoint
  4930.         E7h set locator
  4931.         E8h read locator
  4932.         E9h setdev
  4933.         EBh setstext
  4934.         ECh setstclr
  4935.         EDh setstang
  4936.         EEh stext
  4937.         EFh inqstext
  4938.         F0h setdegree
  4939.         F1h inqstsize
  4940.         F2h polyfabs
  4941.         F3h polyfrel
  4942.         F4h inqdrange
  4943.         F5h inqstang
  4944.         F6h orglocator
  4945.         F7h inqlocator
  4946.         F8h inqarea
  4947.         F9h setipal
  4948.         FAh setborder
  4949.         FBh inqcrange
  4950.         FEh setclip
  4951.         FFh fcir
  4952.            100h setcrange
  4953.            101h setdrange
  4954.            102h setlattr
  4955.            103h polycabs
  4956.            104h polycrel
  4957.            108h memcom
  4958.            109h memexp
  4959.            10Ah memmov
  4960.            10Eh movefx
  4961.            10Fh movetx
  4962.            110h inqrgb
  4963.            111h save image
  4964.            112h restore image
  4965.            113h setapal
  4966.            114h setxpal
  4967.            118h inqtsize
  4968.            12Eh gprint
  4969.            130h setprn
  4970.            131h setpattr
  4971.            133h setbattr
  4972.            135h pexpand
  4973.            136h ptnorm
  4974.            137h pfnorm
  4975.            13Bh inqprn
  4976.            13Ch lopen
  4977.            13Dh lclose
  4978.            13Eh lappend
  4979.            13Fh lrecord
  4980.            140h lswitch
  4981.            142h inqfun
  4982.            15Dh lsetup
  4983.            15Eh lrest
  4984.            15Fh lsave
  4985.     additional parameters on stack
  4986. Return: ???
  4987. Program: Halo88 is a suite of graphics routines
  4988. Note:    according to Stuart Kemp, the code appears to make no provisions for
  4989.        chaining
  4990. --------N-7F---------------------------------
  4991. INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR
  4992.     AL = request ID
  4993.         01h "Request"/"RequestDirect"
  4994.         ES:BX -> pRq
  4995.         DX ignored
  4996.         04h "Wait"
  4997.         ES:BX -> ppMsgRet
  4998.         DX = exchange
  4999.         05h "AllocExch"
  5000.         ES:BX -> pExchRet
  5001.         06h "DeAllocExch"
  5002.         DX = exchange
  5003.         07h "Check"
  5004.         ES:BX -> ppMsgRet
  5005.         DX = exchange
  5006.     CX = 4354h ('CT')
  5007. Return: AX = status
  5008.         0000h successful
  5009. --------S-7F---------------------------------
  5010. INT 7F - Telebit ACS SERIAL I/O
  5011.     ES:SI-> parameter block
  5012. Return: CF set on error
  5013.     CF clear on success
  5014. Notes:    the signature "PDGATEWRKSTNIF" appears just prior to the interrupt
  5015.       handler; this serves as the installation check
  5016. Index:    installation check;Telebit ACS Serial I/O
  5017.  
  5018. Format of Telebit ACS parameter block:
  5019. Offset    Size    Description
  5020.  00h    BYTE    command (see below)
  5021.  01h    BYTE    gateway number
  5022.  02h    BYTE    reserved
  5023.  03h    BYTE    port
  5024.  04h 17 BYTEs    auxiliary buffer
  5025.  15h    BYTE    session
  5026.  16h    WORD    count of bytes passed to API
  5027.  18h    DWORD    buffer pointer passed to/from API
  5028.  1Ch    WORD    count of bytes passed from API
  5029.  1Eh    BYTE    return code (see below)
  5030.  
  5031. Values for command:
  5032.  3Ch    status
  5033.  3Dh    connect
  5034.  3Eh    disconnect
  5035.  3Fh    read
  5036.  40h    data/command write
  5037.  41h    clear receive buffer
  5038.  42h    get configuration
  5039.  43h    get receiver status
  5040.  44h    raw write
  5041.  45h    search servers
  5042.  46h    set transmit buffer size
  5043.  
  5044. Values for return code:
  5045.  00h    success
  5046.  01h    invalid session
  5047.  05h    servername invalid
  5048.  06h    netware fileserver bindery is locked
  5049.  07h    communication server not active
  5050.  08h    general failure in netware fileserver
  5051.  09h    not logged into a fileserver
  5052.  10h    connection table full
  5053.  11h    no response from communication server
  5054.  12h    connection attempt terminated abnormally
  5055.  13h    connection refused - no sessions available
  5056.  14h    gateway number/port already in use
  5057.  15h    invalid connection response
  5058.  16h    port invalid
  5059.  17h    incorrect version in server response
  5060.  18h    gateway number/port combination not configured
  5061.  19h    initialization has not been completed
  5062.  20h    no more sockets are available
  5063.  21h    no active poolname
  5064.  23h    FATAL internal interface error
  5065.  24h    registration of host workstation failed - name is already in use
  5066.  25h    registration of host workstation failed - workstation name table full
  5067.  26h    registration of host workstation failed - only one session may be
  5068.       registered for dial-in
  5069.  FFh    Telebit ACS API is busy - retry later
  5070. --------N-7F---------------------------------
  5071. INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE
  5072. Notes:    the installation check consists of checking for the signature "Lynn"
  5073.       in the four bytes preceding the interrupt handler; if present, the
  5074.       current program is running as a DOS task on a non-dedicated NetWare
  5075.       2.x file server.
  5076.     Before placing the server into "console" mode, it is recommended that
  5077.       NetWare broadcast messages be disabled with INT 21/AX=DE00h.
  5078. SeeAlso: INT 21/AX=DE00h
  5079. Index:    installation check;non-dedicated NetWare server
  5080. --------S-7F---------------------------------
  5081. INT 7F U - YTERM - ???
  5082. SeeAlso: INT 7E"YTERM"
  5083. --------E-7F---------------------------------
  5084. INT 7F - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ7
  5085. Note:    this vector is overwritten when GO32 starts but is not restored by
  5086.       early versions of the DOS extender
  5087. SeeAlso: INT 0F,INT 7E"GO32"
  5088. ----------7F---------------------------------
  5089. INT 7F - Canon IXHND2 Scanner Interface
  5090. --------N-7F---------------------------------
  5091. INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX)
  5092. Notes:    the words at C800h:0000h and C800h:0002h will both be 584Eh if the
  5093.       MW386 multitasking system is present (i.e. signature "NXNX")
  5094.     NTNX allows its API to be placed on a different interrupt than 7Fh at
  5095.       load time.  To determine the actual vector used, open the device
  5096.       "SPOOLER" with INT 21/AX=3D02h, place it in RAW mode with
  5097.       INT 21/AX=4400h and INT 21/AX=4401h, then read one byte which will
  5098.       be the actual interrupt number being used; the other interrupts may
  5099.       be found with INT 7F/AH=09h/CL=03h
  5100. --------N-7F---------------------------------
  5101. INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK
  5102. Note:    a program may determine that it is running on an ANSK Slave by checking
  5103.       the five bytes at F000h:0000h for the ASCIZ signature "ANSK"; this
  5104.       address is RAM, and should not be written.  However, the above check
  5105.       will not work on Slaves with <1MB RAM or those using the SLIM.SYS
  5106.       device driver
  5107. --------N-7F00-------------------------------
  5108. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT
  5109.     AH = 00h
  5110.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  5111. Return: AL = status
  5112.         00h successful
  5113.         01h invalid function
  5114.         02h semaphore already locked
  5115.         03h unable to lock semaphore
  5116.         04h semaphore space exhausted
  5117.         05h host/target PC did not respond (NTNX)
  5118.     AH = semaphore owner if status=02h
  5119. SeeAlso: AH=01h,AH=02h,AH=41h,INT 67/AH=00h
  5120. --------N-7F01-------------------------------
  5121. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK
  5122.     AH = 01h
  5123.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  5124. Return: AL = status (see AH=00h)
  5125.     AH = semaphore owner if status=02h
  5126. SeeAlso: AH=00h,AH=02h,AH=41h
  5127. --------V-7F01-------------------------------
  5128. INT 7F - TIGA Communications Driver v2.05 - GET ENTRY POINTS
  5129.     AH = 01h
  5130. Return: BX = 1234h if installed
  5131.         DX:AX -> array of FAR entry points
  5132.         CH = driver major version
  5133.         CL = driver minor version
  5134. Note:    TIGACD 2.05 returns CF set on unrecognized functions in AX
  5135. SeeAlso: AX=1234h,AX=4321h
  5136. --------I-7F0104BX0000-----------------------
  5137. INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API)
  5138.     AX = 0104h (HLLAPI gate ID)
  5139.     BX = 0000h
  5140.     DS:SI -> parameter control block (see below)
  5141. Return: parameter control block updated
  5142. SeeAlso: AX=0105h,AX=ABCDh
  5143.  
  5144. Format of parameter control block:
  5145. Offset    Size    Description
  5146.  00h  3 BYTEs    signature = 'PCB'
  5147.  03h    BYTE    function number (see below)
  5148.  04h    WORD    segment of control string
  5149.  06h    WORD    offset of control string
  5150.  08h    WORD    length of control string, unless explicit end-of-str char set
  5151.  0Ah    BYTE    unused (IBM)
  5152.         ControlString[0] (Rabbit)
  5153.  0Bh    WORD    return code
  5154.  0Dh    WORD    maximum length of control string (IBM)
  5155.         unused (Rabbit)
  5156.  
  5157. Values for HLLAPI function number:
  5158.  00h    Query system (Attachmate implementation only)
  5159.  01h    Connect presentation space
  5160.  02h    Disconnect presentation space
  5161.  03h    Send string of keystrokes as if typed from keyboard
  5162.  04h    Wait ~60s, returns status of presentation space
  5163.  05h    Copy current presentation space into a user-defined buffer
  5164.  06h    Search presentation space for first occurrence of a specified string
  5165.  07h    Query cursor location in current presentation space
  5166.  08h    Copy part or all of current presentation space into user buffer
  5167.  09h    Set session parameters; parameters vary by vendor
  5168.  0Ah    Get info on sessions currently connected
  5169.  0Bh    Lock current presentation space
  5170.  0Ch    Unlock previously locked presentation space
  5171.  0Dh    Return copy of operator info area (OIA) of current presentation space
  5172.  0Eh    get attribute byte for given position in the current presentation space
  5173.  0Fh    copy string of characters to the current presentation space
  5174.  10h    workstation control functions
  5175.  11h    storage manager functions, intended primarily for BASIC applications
  5176.     (not implemented by Rabbit)
  5177.  12h    set delay period in half-second intervals
  5178.  14h    get info on level of workstation support used
  5179.  15h    reset session parameters to default values
  5180.  16h    get detailed info on the current session
  5181.  17h    start host notification to application on presentation sp or OIA update
  5182.  18h    check host update when host notification enabled
  5183.  19h    stop host notification
  5184.  1Eh    search field within current presentation space for string
  5185.  1Fh    get first positionof a selected field in the current presentation space
  5186.  20h    get length of specified field
  5187.  21h    copy string into a specified field
  5188.  22h    copy specified field into a user-defined buffer
  5189.  23h    create alternate presentation space (IBM only), don't use with BASIC
  5190.  24h    switch to alternate presentation space (IBM only), not with BASIC
  5191.  25h    display cursor in specified area (IBM only), don't use with BASIC
  5192.  26h    display alternate presentation space (IBM only), don't use with BASIC
  5193.  27h    delete alternate presentation space (IBM only), don't use with BASIC
  5194.  32h    start intercepting keystrokes to allow filtering
  5195.  33h    get keystrokes after turning on interception
  5196.  34h    notify operator when keystroke rejected by filter subroutine
  5197.  35h    stop intercepting keystrokes
  5198.  5Ah    send file
  5199.  5Bh    receive file
  5200.  5Ch    run a program (not implemented by Rabbit)
  5201.  5Dh    execute DOS command (not implemented by Rabbit)
  5202.  63h    change presentation space position to PC display row/col or vice versa
  5203.  FFh    Get info on DCA implementation
  5204.  
  5205. Values for LLAPI function number:
  5206.  80h    initialize LLAPI (internal call)
  5207.  83h    set Session ID (one-character ID)
  5208.  84h    read Session ID (one-character ID)
  5209.  85h    lock 327x keyboard
  5210.  86h    unlock 327x keyboard
  5211.  87h    wait for Clear to Send
  5212.  88h    type ASCII character
  5213.  89h    type 327x key
  5214.  8Ah    read keyboard lock state
  5215.  8Fh    force screen update
  5216.  90h    view session
  5217.  91h    relinquish (suspend foreground until background becomes idle)
  5218.  92h    poke screen character
  5219.  93h    poke translated character
  5220.  94h    peek screen character
  5221.  95h    peek translated character
  5222.  96h    set cursor position
  5223.  97h    send scan code (Rabbit only)
  5224.  98h    synchronize (returns after keystroke queue empty)
  5225.  99h    type PC key (Rabbit only)
  5226.  
  5227. Session Parameters for function 09h:
  5228.  ASCII        ??? (Rabbit only)
  5229.  ATTRIB        return attributes in hex
  5230.  NOATTRIB    return attributes as blanks
  5231.  CONPHYS    make physical connection
  5232.  CONLOG        only make logical connection
  5233.  EAB        copy extended attribute bytes along with data
  5234.  NOEAB        copy data only
  5235.  ESC=n        set escape character to "n" (default '@')
  5236.  EOT=n        set end of string character (default 00h)
  5237.  FPAUSE        full-duration pause
  5238.  FTNOWAIT    return immediately from functions 5Ah and 5Bh (Rabbit only)
  5239.  FTWAIT        wait for file transfer to complete (Rabbit only)
  5240.  IPAUSE        interruptable pause
  5241.  RABESC        ??? (Rabbit only)
  5242.  NORABESC    ??? (Rabbit only)
  5243.  SCANCODE    ??? (Rabbit only)
  5244.  STRLEN        use explicit string lengths
  5245.  STREOT        use terminated strings
  5246.  SRCHALL    search entire presentation space
  5247.  SRCHFROM    search from specified offset
  5248.  SRCHFRWD    search forward from position 1
  5249.  SRCHBKWD    search backward from last position in presentation space
  5250.  TIMEOUT=n    ??? (Rabbit only)
  5251.  TWAIT        wait specified time for keyboard ready
  5252.  LWAIT        wait until keyboard ready
  5253.  NWAIT        no wait
  5254.  TRON        enable tracing
  5255.  TROFF        disable tracing
  5256.  AUTORESET    send reset before sending keys with function 03h
  5257.  NORESET    don't send reset
  5258.  QUIET        don't display messages sent with INT 21/AH=09h
  5259.  NOQUIET    allow messages to be displayed
  5260.  TIMEOUT=n    set timeout in 30-second intervals, 0 = wait until ^Break
  5261.  XLATE        translate extended attribute bytes
  5262.  NOXLATE    don't translate
  5263.  NEWRET        use HLLAPI v3.0 return code conventions
  5264.  OLDRET        use HLLAPI v2.0 return code conventions
  5265. --------V-7F0105-----------------------------
  5266. INT 7F - HDILOAD.EXE - 8514/A VIDEO CONTROLLER INTERFACE
  5267.     AX = 0105h
  5268. Return: CF set on error
  5269.     CF clear if successful
  5270.         CX:DX -> array of FAR pointers to entry points
  5271. Note:    most functions are invoked by pushing the DWORD parameter block pointer
  5272.       and then performing a FAR call via the appropriate vector of the
  5273.       entry point array
  5274. SeeAlso: AX=0104h,AX=ABCDh
  5275.  
  5276. Function numbers: (do FAR call via entry_points+4*function)
  5277.  08h    HOPEN
  5278.  10h    HINT
  5279.  13h    HLDPAL
  5280.  15h    HBBW
  5281.  17h    HBBR
  5282.  18h    HBBCHN
  5283.  1Dh    HQMODE
  5284.  22h    HCLOSE
  5285.  30h    HINIT
  5286.  31h    HSYNC
  5287.  39h    HSPAL
  5288.  3Ah    HRPAL
  5289. --------N-7F02-------------------------------
  5290. INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE
  5291.     AH = 02h
  5292.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  5293. Return: AL = status
  5294.         00h successful
  5295.         01h invalid function
  5296.         02h semaphore locked by other user
  5297.         AH = semaphore owner
  5298.         03h unable to unlock semaphore
  5299.         05h target PC did not respond
  5300. SeeAlso: AH=00h,AH=01h,AH=42h
  5301. --------f-7F0200-----------------------------
  5302. INT 7F - Btrieve Multi-User - GIVE UP TIME???
  5303.     AX = 0200h
  5304. SeeAlso: INT 2F/AX=AB01h,INT 2F/AX=AB02h,INT 7B"Btrieve"
  5305. --------N-7F03-------------------------------
  5306. INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER
  5307.     AH = 03h
  5308. Return: AL = user number
  5309.     AH = machine number (MW386)
  5310. Note:    this function call is the recommended method for a CPU-bound process to
  5311.       prevent its priority from being lowered
  5312. SeeAlso: AH=04h,AH=05h,AH=A1h
  5313. --------N-7F04-------------------------------
  5314. INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS
  5315.     AH = 04h
  5316. Return: AL = total number of users on currrent machine (MW386)
  5317.     AL = number of slaves on system (NTNX)
  5318. SeeAlso: AH=03h
  5319. --------N-7F05-------------------------------
  5320. INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL
  5321.     AH = 05h
  5322.     AL = function
  5323.         00h lock system (disable slave services)
  5324.         01h unlock system
  5325.         02h enable spooler
  5326.         03h disable spooler
  5327.         04h enable slave timer update
  5328.         05h disable slave timer update
  5329.         06h enable form feeds
  5330.         07h disable form feeds
  5331. SeeAlso: INT 17/AH=A4h
  5332. --------N-7F05-------------------------------
  5333. INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS
  5334.     AH = 05h
  5335.     DX:DI -> buffer for user information record (see below)
  5336. Notes:    MW386 provides this function for backward compatibility only, and sets
  5337.       many of the fields to zero because they are meaningless under MW386
  5338.     this function has no effect when called by the host (user 0)
  5339. SeeAlso: AH=03h
  5340.  
  5341. Format of user information record:
  5342. Offset    Size    Description
  5343.  00h    WORD    segment of video RAM
  5344.  02h    WORD    segment of secondary copy of video RAM
  5345.  04h    WORD    offset of screen update flag (see INT 10/AH=8Bh)
  5346.         flag nonzero if update needed
  5347.  06h    WORD    video NMI enable port
  5348.         (not used by MW386, set to 0000h)
  5349.  08h    WORD    video NMI disable port
  5350.         (not used by MW386, set to 0000h)
  5351.  0Ah    BYTE    processor type
  5352.         00h 8088
  5353.         01h V20
  5354.         02h 8086
  5355.         03h V30
  5356.         06h 80386
  5357.  0Bh    WORD    multitasking flag (00h = single tasking, 01h = multitasking)
  5358.         (not used by MW386, set to 0000h)
  5359.  0Dh    WORD    offset of terminal driver
  5360.         (not used by MW386, set to 0000h)
  5361.  0Fh    BYTE    port for console I/O
  5362.         (not used by MW386, set to 0000h)
  5363.  10h    WORD    offset of processor communication busy flag
  5364.         bit 7 set when slave communicating with host
  5365.  12h    WORD    pointer to FAR NX system call
  5366.         (not used by MW386, set to 0000h)
  5367.  14h    WORD    offset of 16-byte user configuration record (see AH=38h)
  5368.  16h    WORD    offset of command/status word
  5369.  18h    WORD    offset of screen valid flag (see INT 10/AH=93h)
  5370.         nonzero if screen must be repainted
  5371.  1Ah    WORD    offset of screen repaint flag
  5372.  1Ch    WORD    pointer to NEAR NX system call
  5373.         (not used by MW386, set to 0000h)
  5374.  1Eh    WORD    offset for intercept flags
  5375.         (not used by MW386, set to 0000h)
  5376.         intercept flag = FFh if MS-DOS intercepts should be disabled
  5377.  20h    WORD    offset of terminal lock flag (see INT 10/AH=92h)
  5378.         lock flag = FFh if backgrnd screen updates should be suspended
  5379.  22h 26 BYTEs    reserved
  5380. --------N-7F06-------------------------------
  5381. INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO
  5382.     AH = 06h
  5383.     AL = drive number (1=A:, 2=B:, etc)
  5384.     ES:DI -> drive info record (see below)
  5385. Return: AX = status
  5386.         0000h successful
  5387.         ES:DI buffer filled
  5388.         0001h not shared drive
  5389.  
  5390. Format of drive info record:
  5391. Offset    Size    Description
  5392.  00h    WORD    segment of drive IO-REQUEST structure (MS-DOS DPB)
  5393.  02h    WORD    segment of allocation map (owner table)
  5394.         one byte per FAT entry, containing user ID owning that entry
  5395.  04h    WORD    segment of master FAT for drive (copy of FAT on disk)
  5396.  06h    WORD    pointer to configuration file
  5397.  08h    WORD    total number of clusters
  5398.  0Ah    WORD    bytes per sector
  5399.  0Ch    WORD    sectors per cluster
  5400.  0Eh    BYTE    FAT type (0Ch = 12-bit, 10h = 16-bit)
  5401. --------N-7F06-------------------------------
  5402. INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE
  5403.     AH = 06h
  5404.     DL = drive number (1=A:,2=B:,etc)
  5405.     CX = number of clusters to allocate
  5406. Return: AH = status
  5407.         00h successful
  5408.         CX = number of clusters still free
  5409.         10h invalid shared drive request
  5410.         CL = first and second shared drives
  5411.         11h invalid cluster count (must be 01h-FFh)
  5412. --------N-7F07-------------------------------
  5413. INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES
  5414.     AH = 07h
  5415. Return: ES:DI -> shared drive list (see below)
  5416. Note:    MW386 considers all fixed disks to be shared drives; only C and D will
  5417.       be returned as shared
  5418.  
  5419. Format of shared drive list:
  5420. Offset    Size    Description
  5421.  00h    BYTE    string length
  5422.  01h    BYTE    number of shared drives
  5423.  02h  N BYTEs    one byte per shared drive
  5424. --------N-7F08-------------------------------
  5425. INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS
  5426.     AH = 08h
  5427.     CL = function
  5428.         00h get original interrupt vector
  5429.         01h get Network Executive interrrupt
  5430.     AL = interrupt number
  5431.     DX:SI -> DWORD to hold interrupt vector
  5432. Return: AL = status
  5433.         00h successful
  5434.         01h interrupt vector not used by network executive
  5435.         02h invalid subfunction
  5436. Note:    the network executive uses interrupts 02h,08h,09h,0Fh,10h,13h,16h-19h,
  5437.       1Ch,20h,28h,2Ah,2Fh,5Bh,67h,7Fh,ECh, and F0h-FFh
  5438. SeeAlso: AH=09h/CL=03h,INT 21/AH=35h
  5439. --------N-7F08--CL02-------------------------
  5440. INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT
  5441.     AH = 08h
  5442.     CL = 02h
  5443.     DX = timeout in seconds
  5444. Return: AL = status
  5445.         00h successful
  5446.         02h invalid subfunction
  5447. --------T-7F09-------------------------------
  5448. INT 7F - MultiLink Advanced - SET TASK PRIORITY
  5449.     AH = 09h
  5450.     AL = priority (0-7)
  5451. Note:    the installation check consists of ensuring that the interrupt vector
  5452.       is not pointing at segment 0000h, then checking whether the byte
  5453.       at offset 0000h in the interrupt handler's segment is E9h
  5454. Index:    installation check;MultiLink Advanced
  5455. --------N-7F09-------------------------------
  5456. INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING
  5457.     AH = 09h
  5458.     CL = function
  5459.         00h enable checking of RTNX.MUD file
  5460.         01h disable RTNX.MUD checking
  5461. --------N-7F09--CL02-------------------------
  5462. INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE
  5463.     AH = 09h
  5464.     CL = 02h
  5465. Note:    in dedicated mode, the host will only poll for I/O requests from the
  5466.       slave processors, and not provide workstation services
  5467. --------N-7F09--CL03-------------------------
  5468. INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT
  5469.     AH = 09h
  5470.     CL = 03h
  5471.     AL = default interrupt number (67h,7Fh,etc)
  5472. Return: CL = actual interrupt which handles specified interrupt's calls
  5473. SeeAlso: AH=08h
  5474. --------N-7F0A--CL00-------------------------
  5475. INT 7F - Alloy NTNX - GET SYSTEM FLAGS
  5476.     AH = 0Ah
  5477.     CL = 00h
  5478.     ES:DI -> buffer for system flags (see below)
  5479. Return: ES:DI buffer filled
  5480. Notes:    on a slave, only the NX_Busy flag is returned
  5481.     all three flags are at fixed positions, so this function only needs to
  5482.       be called once
  5483.     an interrupt handler should only perform DOS or device accesses when
  5484.       all three flags are 00h
  5485.  
  5486. Format of system flags:
  5487. Offset    Size    Description
  5488.  00h    DWORD    pointer to NX_Busy flag (nonzero when communicating with users)
  5489.  04h    DWORD    pointer to device driver busy flag
  5490.  08h    DWORD    pointer to InTimer flag
  5491. --------N-7F0B--CL02-------------------------
  5492. INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE
  5493.     AH = 0Bh
  5494.     CL = 02h
  5495.     AL = slave ID number
  5496.     CH = DOS to activate
  5497.         00h graphics DOS
  5498.         01h character DOS
  5499. Return: AL = status
  5500.         00h successful
  5501.         01h nothing done, proper DOS type already loaded
  5502. --------N-7F10--CL00-------------------------
  5503. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL
  5504.     AH = 10h
  5505.     CL = 00h
  5506.     AL = channel number
  5507.     DX:DI -> channel buffer
  5508. Return: AL = status (00h-03h,0Dh) (see below)
  5509. Note:    may not be invoked from within a hardware interrupt handler
  5510. SeeAlso: AH=10h/CL=01h,AH=10h/CL=04h,AH=14h/CL=02h
  5511.  
  5512. Values for status:
  5513.  00h    successful
  5514.  01h    busy
  5515.  02h    channel range error (not 00h-3Fh)
  5516.  03h    invalid subfunction
  5517.  0Ah    channel not open
  5518.  0Ch    channel already locked
  5519.  0Dh    unable to open
  5520. --------N-7F10--CL01-------------------------
  5521. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL
  5522.     AH = 10h
  5523.     CL = 01h
  5524.     AL = channel number
  5525. Return: AL = status (00h-03h,0Ah) (see AH=10h/CL=00h)
  5526. Note:    may not be invoked from within a hardware interrupt handler
  5527. SeeAlso: AH=10h/CL=00h,AH=10h/CL=05h
  5528. --------N-7F10--CL02-------------------------
  5529. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL
  5530.     AH = 10h
  5531.     CL = 02h
  5532.     AL = channel number
  5533. Return: AL = status (00h-03h,0Ah,0Ch) (see AH=10h/CL=00h)
  5534. Note:    may not be invoked from within a hardware interrupt handler
  5535. SeeAlso: AH=10h/CL=03h,AH=10h/CL=06h,AH=10h/CL=08h
  5536. --------N-7F10--CL03-------------------------
  5537. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL
  5538.     AH = 10h
  5539.     CL = 03h
  5540.     AL = channel number
  5541. Return: AL = status (00h-03h,0Ah) (see AH=10h/CL=00h)
  5542. Notes:    should only be used on channels locked with AH=10h/CL=02h, not on those
  5543.       locked by receipt of a datagram
  5544.     may not be invoked from within a hardware interrupt handler
  5545. SeeAlso: AH=10h/CL=02h,AH=10h/CL=04h,AH=10h/CL=09h
  5546. --------N-7F10--CL04-------------------------
  5547. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER
  5548.     AH = 10h
  5549.     CL = 04h
  5550.     AL = channel number
  5551. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  5552. Notes:    unlocks buffer after received datagram has been processed
  5553.     may not be invoked from within a hardware interrupt handler
  5554. SeeAlso: AH=10h/CL=00h
  5555. --------N-7F10--CL05-------------------------
  5556. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS
  5557.     AH = 10h
  5558.     CL = 05h
  5559. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  5560. Notes:    clears all pending datagrams and clears buffer pointers before closing
  5561.       the channels
  5562.     may not be invoked from within a hardware interrupt handler
  5563. SeeAlso: AH=10h/CL=01h
  5564. --------N-7F10--CL06-------------------------
  5565. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS
  5566.     AH = 10h
  5567.     CL = 06h
  5568. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  5569. Note:    may not be invoked from within a hardware interrupt handler
  5570. SeeAlso: AH=10h/CL=02h,AH=10h/CL=08h
  5571. --------N-7F10--CL07-------------------------
  5572. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS
  5573.     AH = 10h
  5574.     CL = 07h
  5575. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  5576. Notes:    unlocks all locked channels which have no pending datagrams
  5577.     may not be invoked from within a hardware interrupt handler
  5578. SeeAlso: AH=10h/CL=03h,AH=10h/CL=09h
  5579. --------N-7F10--CL08-------------------------
  5580. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS
  5581.     AH = 10h
  5582.     CL = 08h
  5583.     DX = maximum channel number to lock
  5584. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  5585. Notes:    locks channels numbered 00h through the value in DX
  5586.     may not be invoked from within a hardware interrupt handler
  5587. SeeAlso: AH=10h/CL=02h,AH=10h/CL=06h,AH=10h/CL=09h
  5588. --------N-7F10--CL09-------------------------
  5589. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS
  5590.     AH = 10h
  5591.     CL = 09h
  5592.     DX = maximum channel number to unlock
  5593. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  5594. Notes:    unlocks channels numbered 00h through the value in DX
  5595.     may not be invoked from within a hardware interrupt handler
  5596. SeeAlso: AH=10h/CL=03h,AH=10h/CL=07h,AH=10h/CL=08h
  5597. --------N-7F11-------------------------------
  5598. INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM
  5599.     AH = 11h
  5600.     DX:SI -> request block (see below)
  5601. Return: AL = status (see below)
  5602. Note:    if wildcard channel FFh used, actual channel number will be filled in
  5603. SeeAlso: AH=12h
  5604.  
  5605. Values for status:
  5606.  00h    successful
  5607.  01h    busy
  5608.  02h    channel range error (not 00h-3Fh)
  5609.  03h    invalid subfunction
  5610.  0Ah    packet too large (or <2 bytes if NTNX)
  5611.  0Bh    can't send packet to itself
  5612.  0Ch    invalid number of destinations
  5613.  0Dh    destination channel number out of range
  5614.  0Eh    destination user is busy
  5615.  0Fh    destination user has locked channel
  5616.  10h    channel not open
  5617.  11h    no datagram server on destination (NTNX)
  5618.  
  5619. Format of request block:
  5620. Offset    Size    Description
  5621.  00h    DWORD    pointer to packet to send
  5622.  04h    WORD    packet size in bytes (1-4096)
  5623.  06h    BYTE    number of destinations for packet (max 1Fh)
  5624.  07h 31 BYTEs    destination user IDs (FFh = broadcast to all except sender)
  5625.  26h 31 BYTEs    destination channels (FFh = first available channel)
  5626.  45h 31 BYTEs    return destination statuses
  5627. --------N-7F12-------------------------------
  5628. INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM
  5629.     AH = 12h
  5630.     AL = channel number being acknowledged
  5631.     DI:DX = 32-bit status to return to sender
  5632. Return: AL = status (see below)
  5633. Note:    also unlocks the channel, allowing the next datagram to be received
  5634. SeeAlso: AH=11h,AH=15h/CL=04h
  5635.  
  5636. Values for status:
  5637.  00h    successful
  5638.  01h    busy
  5639.  02h    channel range error (not 00h-3Fh)
  5640.  03h    invalid subfunction
  5641.  0Ah    channel not open
  5642.  0Bh    no message in channel
  5643.  0Ch    destination slave busy--retry (NTNX)
  5644.  0Dh    destination user not active
  5645.  0Eh    destination slave not active (NTNX)
  5646.  0Fh    destination disabled datagram service
  5647. --------V-7F1234-----------------------------
  5648. INT 7F - TIGA Communications Driver v2.05 - UNINSTALL
  5649.     AX = 1234h
  5650. SeeAlso: AX=4321h
  5651. --------N-7F13--CL00-------------------------
  5652. INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS
  5653.     AH = 13h
  5654.     CL = 00h
  5655. Note:    clears all pending datagrams and removes all channels opened in NTNX
  5656.       compatibility mode
  5657. --------N-7F14--CL00-------------------------
  5658. INT 7F - Alloy NTNX, MW386 -  SET RECEIVE ISR
  5659.     AH = 14h
  5660.     CL = 00h
  5661.     DX:DI -> application FAR receive service routine (see below)
  5662. Return: AL = status (00h-03h) (see AH=12h)
  5663. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  5664.  
  5665. Service routine called with:
  5666.     DH = sender ID
  5667.     DL = channel with datagram
  5668.     interrupts disabled
  5669. Return: AL = response code
  5670.         00h leave buffer locked, set channel status, and repeat call later
  5671.         01h release channel buffer
  5672.         02h change buffer pointer to DX:DI
  5673.     AH,CX,DX,DI,SI may be destroyed
  5674. --------N-7F14--CL01-------------------------
  5675. INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR
  5676.     AH = 14h
  5677.     CL = 01h
  5678.     DX:DI -> application FAR acknowledge service routine (see below)
  5679. Return: AL = status (00h-03h) (see AH=12h)
  5680. Note:    the service routine will be called as soon as an acknowledgment arrives
  5681. SeeAlso: AH=12h,AH=14h/CL=00h,AH=14h/CL=04h,AH=15h/CL=04h
  5682.  
  5683. Service routine called with:
  5684.     DS:SI -> acknowledge structure (see AH=15h/CL=04h)
  5685. Return: AL = response code
  5686.         00h application busy, network executive should call again later
  5687.         01h acknowledge accepted
  5688.     AH,DX,SI may be destroyed
  5689. --------N-7F14--CL02-------------------------
  5690. INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER
  5691.     AH = 14h
  5692.     CL = 02h
  5693.     AL = channel number
  5694.     DX:DI -> receive buffer
  5695. Return: AL = status (00h-03h) (see AH=12h)
  5696. Note:    may be called from within a receive ISR or when a datagram is pending
  5697. SeeAlso: AH=10h/CL=00h,AH=14h/CL=00h
  5698. --------N-7F14--CL03-------------------------
  5699. INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR
  5700.     AH = 14h
  5701.     CL = 03h
  5702. Return: DX:DI -> current receive ISR
  5703. SeeAlso: AH=14h/CL=00h,AH=14h/CL=04h
  5704. --------N-7F14--CL04-------------------------
  5705. INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR
  5706.     AH = 14h
  5707.     CL = 04h
  5708. Return: DX:DI -> current acknowledge ISR
  5709. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  5710. --------N-7F14--CL05-------------------------
  5711. INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER
  5712.     AH = 14h
  5713.     CL = 05h
  5714.     DX:DI -> buffer for busy structure (see below)
  5715. Return: DX:DI buffer filled
  5716.  
  5717. Format of busy structure:
  5718. Offset    Size    Description
  5719.  00h    DWORD    pointer to busy flag byte
  5720.  04h    WORD    fixed port address (FF00h)
  5721. --------N-7F15--CL00-------------------------
  5722. INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS
  5723.     AH = 15h
  5724.     CL = 00h
  5725.     AL = channel number
  5726.     DX:DI -> status structure (see below)
  5727. Return: AL = status (00h-03h) (see AH=12h)
  5728. SeeAlso: AH=15h/CL=01h
  5729.  
  5730. Format of status structure:
  5731. Offset    Size    Description
  5732.  00h    BYTE    channel status
  5733.         bit 0: channel open
  5734.         bit 1: channel buffer contains received data
  5735.         bit 7: channel locked
  5736.  01h    BYTE    sender ID
  5737. --------N-7F15--CL01-------------------------
  5738. INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL
  5739.     AH = 15h
  5740.     CL = 01h
  5741.     DX:DI -> full-channel structure
  5742. Return: AL = status
  5743.         00h successful
  5744.         01h busy
  5745.         0Ah no datagrams available
  5746. Note:    MW386 v1.0 returns the lowest channel with a datagram; newer versions
  5747.       and NTNX return the oldest datagram
  5748. SeeAlso: AH=15h/CL=00h
  5749.  
  5750. Format of full-channel structure:
  5751. Offset    Size    Description
  5752.  00h    BYTE    number of channel with oldest datagram
  5753.  01h    BYTE    sender ID
  5754. --------N-7F15--CL02-------------------------
  5755. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS
  5756.     AH = 15h
  5757.     CL = 02h
  5758. Return: AH = number of channels available (40h for MW386)
  5759. Note:    the application may always assume at least 32 channels available
  5760. SeeAlso: AH=15h/CL=03h
  5761. --------N-7F15--CL03-------------------------
  5762. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE
  5763.     AH = 15h
  5764.     CL = 03h
  5765.     DX:DI -> WORD for return value
  5766. Return: buffer WORD filled with maximum packet size (4096 for MW386)
  5767. SeeAlso: AH=15h/CL=02h
  5768. --------N-7F15--CL04-------------------------
  5769. INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS
  5770.     AH = 15h
  5771.     CL = 04h
  5772.     DX:DI -> status structure (see below)
  5773. Return: AL = status
  5774.         00h successful
  5775.         DX:DI structure filled
  5776.         01h busy
  5777.         0Ah no acknowledgement has arrived
  5778. SeeAlso: AH=12h,AH=14h/CL=01h
  5779.  
  5780. Format of status structure:
  5781. Offset    Size    Description
  5782.  00h    BYTE    sender ID
  5783.  01h    BYTE    channel number
  5784.  02h  4 BYTEs    receiver status (see AH=12h)
  5785. --------N-7F16-------------------------------
  5786. INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER
  5787.     AH = 16h
  5788.     DX:SI -> transfer structure (see below)
  5789. Return: AL = status
  5790.         00h successful
  5791.         0Ah source or destination out of range
  5792.         0Bh transfer kernal busy--try again
  5793. Notes:    this call transfers memory contents directly between users; both source
  5794.       and destination user IDs may differ from the caller's ID
  5795.     no segment wrap is allowed
  5796.  
  5797. Format of transfer structure:
  5798. Offset    Size    Description
  5799.  00h    WORD    bytes to transfer
  5800.  02h    BYTE    source ID
  5801.         FEh = caller
  5802.  03h    DWORD    source address
  5803.  07h    BYTE    destination ID
  5804.         FFh = all slaves except caller
  5805.         FEh = caller
  5806.  08h    DWORD    destination address
  5807. --------N-7F21-------------------------------
  5808. INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S)
  5809.     AH = 21h
  5810.     AL = sender's user ID
  5811.     DS:DX -> control packet (see below)
  5812. Note:    messages or commands are ignored if disabled by the destination user
  5813. SeeAlso: AH=22h
  5814.  
  5815. Format of control packet:
  5816. Offset    Size    Description
  5817.  00h    BYTE    packet type
  5818.         00h message
  5819.         01h NTNX command
  5820.         02h MW386 command
  5821.  01h    BYTE    destination user ID or 'A' for all users
  5822.  02h 62 BYTEs    ASCIZ message (packet type 00h)
  5823.         BIOS keycodes terminated by NUL byte (type 01h) or word (02h)
  5824. Note:    a maximum of 16 keycodes will be processed for NTNX and MW386 commands
  5825. --------N-7F22-------------------------------
  5826. INT 7F - Alloy NTNX - GET MESSAGE
  5827.     AH = 22h
  5828. Return: pending messages displayed on user's screen
  5829. SeeAlso: AH=21h
  5830. --------N-7F24-------------------------------
  5831. INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS
  5832.     AH = 24h
  5833.     CL = function
  5834.         00h attach
  5835.         01h release
  5836.     CH = drive (0=A:,1=B:,etc)
  5837. Return: AX = status
  5838.         00h successful
  5839.         01h invalid request
  5840.         02h already attached
  5841.         03h not attached
  5842.         04h lock table full
  5843. Note:    only drives on the current machine may be attached
  5844. --------N-7F24-------------------------------
  5845. INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR
  5846.     AH = 24h
  5847.     CL = function
  5848.         02h attach host
  5849.         03h release host
  5850. Return: AX = status
  5851.         00h successful
  5852.         01h invalid request
  5853.         02h already attached
  5854.         03h not attached
  5855.         04h lock table full
  5856. Note:    the host processor may be attached in order to perform I/O via the host
  5857. --------N-7F25--CL00-------------------------
  5858. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION
  5859.     AH = 25h
  5860.     CL = 00h
  5861. Return: AH = version suffix letter
  5862.     CH = major version number
  5863.     CL = minor version number
  5864. SeeAlso: AH=25h/CL=01h
  5865. --------N-7F25--CL01-------------------------
  5866. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE
  5867.     AH = 25h
  5868.     CL = 01h
  5869. Return: CL = type
  5870.         00h RTNX
  5871.         01h ATNX
  5872.         02h NTNX
  5873.         03h BTNX
  5874.         04h MW386
  5875.         05h ANSK
  5876. SeeAlso: AH=25h/CL=00h
  5877. ----------7F2525-----------------------------
  5878. INT 7F - TIGA Communications Driver v2.05 - ???
  5879.     AX = 2525h
  5880.     BX = ???
  5881. Return: ???
  5882. SeeAlso: AX=4321h,AX=5555h
  5883. --------N-7F26--CL00-------------------------
  5884. INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE
  5885.     AH = 26h
  5886.     CL = 00h
  5887. Return: AX = file mode bits (see below)
  5888. Note:    MW386 does not support file modes, and always returns AX=001Fh
  5889. SeeAlso: AH=26h,AH=26h/CL=06h
  5890.  
  5891. Bitfields for file mode bits:
  5892.  bit 0    directory protection enabled
  5893.  bit 1    extended open enabled
  5894.  bit 2    flush on every disk write
  5895.  bit 3    flush on every disk write in locked interval
  5896.  bit 4    flush on reads from simultaneously opened file
  5897. --------N-7F26-------------------------------
  5898. INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL
  5899.     AH = 26h
  5900.     CL = check type to set/reset
  5901.         01h directory protection
  5902.         02h extended open
  5903.         03h flush on every disk write
  5904.         04h flush on disk write if any lock set during write
  5905.         05h flush on all reads if file written
  5906.     AL = new state (00h off, 01h on)
  5907. SeeAlso: AH=26h/CL=00h,AH=26h/CL=06h
  5908. --------N-7F26--CL06-------------------------
  5909. INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE
  5910.     AH = 26h
  5911.     CL = 06h
  5912. Note:    cancels flags set by AH=26h/CL=03h and AH=26h/CL=04h
  5913. SeeAlso: AH=26h/CL=00h
  5914. --------N-7F30-------------------------------
  5915. INT 7F - Alloy MW386 - GET PORT INFORMATION
  5916.     AH = 30h
  5917.     CX = MW386 port number
  5918. Return: AL = FFh if port not found
  5919.        else     driver unit number
  5920.            BL = port mode
  5921.            BH = port type
  5922.            02h remote
  5923.            DH = owner's machine ID
  5924.            DL = owner's user ID
  5925. SeeAlso: INT 17/AH=8Bh
  5926. --------N-7F31-------------------------------
  5927. INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT
  5928.     AH = 31h
  5929.     ???
  5930. Return: ???
  5931. --------N-7F37-------------------------------
  5932. INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE
  5933.     AH = 37h
  5934. Return: ES:AX -> semaphore table
  5935. --------N-7F37-------------------------------
  5936. INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL
  5937.     AH = 37h
  5938.     DS:DX -> ASCIZ string to display
  5939. Note:    if the string is empty, a terminal update will be forced
  5940. --------N-7F38-------------------------------
  5941. INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER
  5942.     AH = 38h
  5943.     AL = new terminal driver number
  5944.         FFh dummy driver
  5945.         FEh current driver
  5946.         FDh load new driver
  5947.         DS:SI -> new driver
  5948. SeeAlso: AH=39h
  5949. --------N-7F39-------------------------------
  5950. INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER
  5951.     AH = 39h
  5952.     AL = new terminal driver number
  5953.     DL = user number (FFh = caller)
  5954.     DH = machine number if DL <> FFh
  5955. Return: CF set if invalid user number
  5956.     CF clear if successful
  5957. Notes:    only available to supervisors
  5958.     the new driver number will not take effect until the user is rebooted
  5959. SeeAlso: AH=38h
  5960. --------N-7F3A-------------------------------
  5961. INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS
  5962.     AH = 3Ah
  5963.     DL = user number (FFh = caller)
  5964.     DH = machine number
  5965. Return: CF clear if successful
  5966.         AH = terminal driver number
  5967.         AL = baud rate (00h = 38400, 01h = 19200, etc)
  5968.         CL = parity (00h none, 01h even, 02h odd)
  5969.         CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  5970.     CF set if invalid user number
  5971. SeeAlso: AH=3Bh
  5972. --------N-7F3B-------------------------------
  5973. INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS
  5974.     AH = 3Bh
  5975.     AL = baud rate (00h = 38400, 01h = 19200, etc)
  5976.     CL = parity (00h none, 01h even, 02h odd)
  5977.     CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  5978.     DL = user number (FFh = caller)
  5979.     DH = machine number for user
  5980. Return: CF set if invalid user number
  5981. Notes:    only available to supervisors
  5982.     the new parameters will take effect immediately if the user's terminal
  5983.       has not been started, else AH=3Dh must be called to post the changes
  5984. SeeAlso: AH=3Ah,AH=3Dh
  5985. --------N-7F3C-------------------------------
  5986. INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT
  5987.     AH = 3Ch
  5988.     AL = new state
  5989.          00h disabled, 01h enabled
  5990.     DL = user number (FFh = caller)
  5991.     DH = machine number for user
  5992. Return: CF set if invalid user number
  5993. Note:    only available to supervisors
  5994. SeeAlso: AH=3Dh
  5995. --------N-7F3D-------------------------------
  5996. INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES
  5997.     AH = 3Dh
  5998. Note:    should be called whenever a program changes the terminal type or its
  5999.       parameters
  6000. SeeAlso: AH=3Bh
  6001. --------N-7F41-------------------------------
  6002. INT 7F - Alloy NTNX - LOCK FILE FOR USER
  6003.     AH = 41h
  6004.     AL = user ID
  6005.     DS:DX -> ASCIZ filename
  6006. Return: AL = status
  6007.         00h successful
  6008.         01h invalid function
  6009.         02h already locked
  6010.         03h unable to lock
  6011.         04h lock table full
  6012. Note:    requests exclusive read/write access to file
  6013. SeeAlso: AH=00h,AH=41h"MW386",AH=42h"NTNX"
  6014. --------N-7F41-------------------------------
  6015. INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER
  6016.     AH = 41h
  6017.     AL = user ID
  6018.     DS:DX -> ASCIZ semaphore name
  6019. Return: AL = status
  6020.         00h successful
  6021.         01h invalid function
  6022.         02h semaphore already locked
  6023.         03h unable to lock semaphore
  6024.         04h semaphore space exhausted
  6025. SeeAlso: AH=00h,AH=42h"MW386"
  6026. --------N-7F42-------------------------------
  6027. INT 7F - Alloy NTNX - UNLOCK FILE FOR USER
  6028.     AH = 42h
  6029.     AL = user ID
  6030.     DS:DX -> ASCIZ filename
  6031. Return: AL = status
  6032.         00h successful
  6033.         01h invalid function
  6034.         02h already locked
  6035.         03h unable to lock
  6036.         04h lock table full
  6037. SeeAlso: AH=00h,AH=41h"NTNX",AH=42h"MW386"
  6038. --------N-7F42-------------------------------
  6039. INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER
  6040.     AH = 42h
  6041.     AL = user ID
  6042.     DS:DX -> ASCIZ semaphore name
  6043. Return: AL = status
  6044.         00h successful
  6045.         01h invalid function
  6046.         03h unable to unlock semaphore
  6047. SeeAlso: AH=02h,AH=41h"MW386",AH=42h"NTNX"
  6048. ----------7F4321-----------------------------
  6049. INT 7F - TIGA Communications Driver v2.05 - INSTALLATION CHECK
  6050.     AX = 4321h
  6051. Return: AX = 0000h if installed
  6052. Note:    INT 7F is the default, but may be overridden
  6053. SeeAlso: AH=01h"TIGA",AX=1234h,AX=2525h,AX=4321h,AX=5555h
  6054. --------N-7F4E-------------------------------
  6055. INT 7F - Alloy MW386 v2+ - SET ERROR MODE
  6056.     AH = 4Eh
  6057.     AL = error mode flags
  6058.         bit 0: display critical disk errors
  6059.         bit 1: display sharing errors
  6060.     DX = 4E58h ("NX")
  6061. Return: AL = status
  6062.         00h successful
  6063. SeeAlso: AH=4Fh
  6064. --------N-7F4F-------------------------------
  6065. INT 7F - Alloy MW386 v2+ - SET FCB MODE
  6066.     AH = 4Fh
  6067.     AL = FCB mode
  6068.         02h read/write compatibility
  6069.         42h read/write shared
  6070.     DX = 4E58h ("NX")
  6071. Return: AL = status
  6072.         00h successful
  6073. --------V-7F5555-----------------------------
  6074. INT 7F - TIGA Communications Driver v2.05 - ???
  6075.     AX = 5555h
  6076.     BX = ???
  6077. Return: ???
  6078. SeeAlso: AX=4321h
  6079. --------N-7F81-------------------------------
  6080. INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER
  6081.     AH = 81h
  6082.     AL = user ID
  6083.     DS:DX -> ASCIZ device name
  6084. SeeAlso: AH=82h
  6085. --------N-7F82-------------------------------
  6086. INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER
  6087.     AH = 82h
  6088.     AL = user ID
  6089.     DS:DX -> ASCIZ device name
  6090. SeeAlso: AH=81h
  6091. --------N-7FA0-------------------------------
  6092. INT 7F - Alloy MW386 - GET USER NAME
  6093.     AH = A0h
  6094.     DL = user number (FFh = caller)
  6095.     DH = machine number for user
  6096.     ES:DI -> 17-byte buffer for ASCIZ user name
  6097. Return: CF set if invalid user number
  6098. SeeAlso: AH=03h,AH=A1h
  6099. --------N-7FA1-------------------------------
  6100. INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER
  6101.     AH = A1h
  6102. Return: AL = process number
  6103.     DL = user number
  6104.     DH = machine number
  6105. SeeAlso: AH=03h,AH=A0h,AH=A2h
  6106. --------N-7FA2-------------------------------
  6107. INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL
  6108.     AH = A2h
  6109.     DL = user number (FFh = caller)
  6110.     DH = machine number for user
  6111. Return: CF clear if successful
  6112.         AL = privilege level
  6113.         00h supervisor
  6114.         01h high
  6115.         02h medium
  6116.         03h low
  6117.     CF set if invalid user number
  6118. SeeAlso: AH=A1h,AH=A3h
  6119. --------N-7FA3-------------------------------
  6120. INT 7F - Alloy MW386 - GET USER LOGIN STATE
  6121.     AH = A3h
  6122.     DL = user number
  6123.     DH = machine number for user
  6124. Return: CF clear if successful
  6125.         AL = login state
  6126.         00h never logged in
  6127.         01h currently logged out
  6128.         03h currently logged in
  6129.     CF set if invalid user number or user not active
  6130. SeeAlso: AH=A2h
  6131. --------N-7FA4-------------------------------
  6132. INT 7F - Alloy MW386 - VERIFY USER PASSWORD
  6133.     AH = A4h
  6134.     DS:DX -> ASCIZ password (null-padded to 16 bytes)
  6135. Return: AL = 00h if accepted
  6136.        else     invalid password
  6137. --------N-7FA500-----------------------------
  6138. INT 7F - Alloy MW386 - GET USER STATUS
  6139.     AX = A500h
  6140.     DI = machine number and user number
  6141. Return: CF clear if successful
  6142.         BX = user flags
  6143.         bit 5: allow messages
  6144.         CL = scan code for task manager hotkey
  6145.         CH = scan code for spooler hotkey
  6146.         DL = scan code for task swapper hotkey
  6147.         DH = modifier key status
  6148.     CF set if invalid user number
  6149. SeeAlso: AX=A501h
  6150. Index:    hotkeys;Alloy MW386
  6151. --------N-7FA501-----------------------------
  6152. INT 7F - Alloy MW386 - SET USER STATUS
  6153.     AX = A501h
  6154.     BX = user flags (see above)
  6155.     CL = scan code for task manager hotkey
  6156.     CH = scan code for spooler hotkey
  6157.     DL = scan code for task swapper hotkey
  6158.     DH = modifier key status
  6159.     DI = machine number and user number
  6160. Return: CF set if invalid user number
  6161. Note:    must have supervisor privilege to set another user's status
  6162. SeeAlso: AX=A500h
  6163. Index:    hotkeys;Alloy MW386
  6164. --------V-7FABCDBX0000-----------------------
  6165. INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY
  6166.     AX = ABCDh
  6167.     BX = 0000h
  6168. Return: AX = total number of functions available
  6169.     ES:BX -> entry point array
  6170. SeeAlso: AX=0104h,AX=0105h
  6171.  
  6172. Function numbers:
  6173.  00h    check initialization and reset
  6174.  14h    set user-defined subroutine
  6175. Notes:    each driver function takes two stack parameters using Pascal calling
  6176.       conventions: address of parameter block and address of results buffer
  6177.     all pointers are FAR pointers
  6178.     on return, AX contains the status of the call:
  6179.         AX = 0000h successful
  6180.          0001h invalid input
  6181.          0002h interface error
  6182.          0003h unable to perform function
  6183.  
  6184. Format of parameter block for function 00h:
  6185. Offset    Size    Description
  6186.  00h    WORD    0000h (function number)
  6187. Note:    this function should be called before any other device driver functions
  6188.  
  6189. Format of results buffer for function 00h:
  6190. Offset    Size    Description
  6191.  00h    WORD    touch screen status
  6192.         0000h unavailable
  6193.         0001h uncalibrated
  6194.         FFFFh available
  6195.  02h    WORD    aux mouse status (0000h not present, FFFFh present)
  6196. Notes:    the following driver parameters will have been reset to zero:
  6197.       touchdown counter, liftoff counter, position at last touch, position
  6198.       at last lift, int call mask, select on count, select off count,
  6199.       pos select on count, pos select off count.
  6200.     the following driver parameters will have been reset as listed:
  6201.       mouse emulation mode: left on
  6202.       thresholds: 46 on screen, 96 push harder, 80 push release
  6203.       x, y hysteresis: 400
  6204.       data repeat rate: 40/sec
  6205.       select mechanism: push-harder - first-touch
  6206.       coordinate origin: upper left corner
  6207.       filter frequency: medium
  6208.       data block mask: all enabled
  6209.       click lock: on
  6210. --------N-7FB0-------------------------------
  6211. INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER
  6212.     AH = B0h
  6213.     AL = user number
  6214.     DS = code segment
  6215. Note:    MW386 ignores AL and DS; it releases all semaphores locked using INT 67
  6216.       or INT 7F locking functions
  6217. SeeAlso: AH=B1h,AH=B2h,AH=B3h,AH=B4h
  6218. --------N-7FB1--SF00-------------------------
  6219. INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER
  6220.     AH = B1h subfn 00h
  6221.     AL = (bits 7-5) 000
  6222.          (bits 4-0) user ID
  6223. Note:    MW386 ignores AL; it releases all semaphores locked using INT 67 or
  6224.       INT 7F locking functions
  6225. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  6226. --------N-7FB2--SF01-------------------------
  6227. INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER
  6228.     AH = B2h subfn 01h
  6229.     AL = (bits 7-5) 001
  6230.          (bits 4-0) user ID
  6231. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h
  6232. --------N-7FB3--SF02-------------------------
  6233. INT 7F - Alloy NTNX - RELEASE FILES FOR USER
  6234.     AH = B3h subfn 02h
  6235.     AL = (bits 7-5) 010
  6236.          (bits 4-0) user ID
  6237. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B4h
  6238. --------N-7FB4-------------------------------
  6239. INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER
  6240.     AH = B4h
  6241.     AL = user ID
  6242. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B3h
  6243. --------N-7FC3-------------------------------
  6244. INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT
  6245.     AH = C3h
  6246.     AL = byte to write
  6247. Return: CF clear if successful
  6248.     CF set on error
  6249. SeeAlso: AH=C6h
  6250. --------N-7FC5-------------------------------
  6251. INT 7F - Alloy MW386 - CHANGE CONSOLE MODE
  6252.     AH = C5h
  6253.     AL = new console mode
  6254.         00h keyboard indirect
  6255.         01h keyboard direct
  6256.         02h data handshake enforced
  6257.         03h no data handshake
  6258. Return: CF clear if successful
  6259.         AL = prior console mode
  6260.     CF set on error (caller is not remote user)
  6261. Note:    modes 2 and 3 may be used for input through the console port; no video
  6262.       output should be performed in these modes
  6263. --------N-7FC6-------------------------------
  6264. INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT
  6265.     AH = C6h
  6266.     AL = byte to write
  6267. Return: CF clear if successful
  6268.     CF set on error (caller is not remote user)
  6269. Note:    any terminal driver data translation will be bypassed
  6270. SeeAlso: AH=C3h,AH=C7h
  6271. --------N-7FC7-------------------------------
  6272. INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE
  6273.     AH = C7h
  6274. Return: CF clear if successful
  6275.         AL = byte read
  6276.     CF set on error (no data available or caller is not remote user)
  6277. Note:    used to read data after placing console in mode 2 or 3 (see AH=C5h)
  6278. SeeAlso: AH=C5h,AH=C6h,AH=C8h
  6279. --------N-7FC8-------------------------------
  6280. INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER
  6281.     AH = C8h
  6282.     AL = maximum bytes to read
  6283.     ES:DI -> buffer for console data
  6284. Return: CF clear if successful
  6285.         CX = number of bytes read
  6286.     CF set on error (caller is not remote user)
  6287. SeeAlso: AH=C7h
  6288. --------N-7FCF-------------------------------
  6289. INT 7F - Alloy NTNX - REBOOT USER PROCESSOR
  6290.     AH = CFh
  6291.     DS:DX -> ASCIZ string containing user number to be reset
  6292. SeeAlso: AH=D6h
  6293. --------N-7FD6-------------------------------
  6294. INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE
  6295.     AH = D6h
  6296.     DS:DX -> reset packet (see below)
  6297. Return: never if successful
  6298. Note:    all users will be shut down immediately if successful
  6299. SeeAlso: AH=CFh
  6300.  
  6301. Format of reset packet:
  6302. Offset    Size    Description
  6303.  00h    DWORD    reset code (60606060h)
  6304.  04h 16 BYTEs    ASCIZ supervisor password padded with nulls
  6305. --------N-7FD7-------------------------------
  6306. INT 7F - Alloy MW386 - POST EVENT
  6307.     AH = D7h
  6308.     AL = user number (if local event)
  6309.     DX = event number
  6310. --------N-7FD8-------------------------------
  6311. INT 7F - Alloy MW386 - FLUSH DISK BUFFERS
  6312.     AH = D8h
  6313. Return: CF set on error
  6314. Note:    forces all disk buffers to be written out immediately
  6315. SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01h,INT 2F/AX=1120h
  6316. --------N-7FDB-------------------------------
  6317. INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE
  6318.     AH = DBh
  6319. Return: AL = drive from which MW386 was started (2=C:,3=D:,etc)
  6320. --------N-7FE0-------------------------------
  6321. INT 7F - Alloy MW386 - CREATE DOS TASK
  6322.     AH = E0h
  6323.     AL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  6324.     DS:DX -> ASCIZ task name (max 16 bytes)
  6325. Return: CF clear if successful
  6326.         AL = task create ID
  6327.     CF set on error
  6328. Note:    only foreground DOS tasks can use this function
  6329. SeeAlso: AH=E1h,AH=E2h,AH=E3h,AH=E6h,AH=E7h
  6330. --------N-7FE1-------------------------------
  6331. INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID
  6332.     AH = E1h
  6333.     AL = create ID (from AH=E0h)
  6334. Return: AL = DOS process number
  6335.     CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  6336. Note:    this function should not be called immediately after creating a new
  6337.       DOS task, since the new task is being initialized by a concurrent
  6338.       process
  6339. SeeAlso: AH=E0h,AH=E2h
  6340. --------N-7FE2-------------------------------
  6341. INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK
  6342.     AH = E2h
  6343.     AL = DOS process number (from AH=E1h)
  6344. Return: CF set on error (invalid process number or caller not foreground task)
  6345. Notes:    specified task becomes the foreground task and current task is placed
  6346.       in the background
  6347.     may only be called by a foreground task
  6348. SeeAlso: AH=E0h,AH=E1h
  6349. --------N-7FE3-------------------------------
  6350. INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK
  6351.     AH = E3h
  6352. ---v1.x---
  6353.     AL = user number
  6354. ---v2+---
  6355.     BH = user number
  6356.     BL = task number
  6357. ---
  6358.     DS:DX -> ASCIZ task name
  6359. Return: CF set on error (invalid process number)
  6360. SeeAlso: AH=E0h,AH=E4h,AH=E5h
  6361. --------N-7FE4-------------------------------
  6362. INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER
  6363.     AH = E4h
  6364. ---v1.x---
  6365.     AL = user number
  6366. ---v2+---
  6367.     BH = user number
  6368.     BL = task number
  6369. ---
  6370.     ES:DI -> buffer for task name
  6371. Return: CF clear if successful
  6372.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  6373.         DX = task flags
  6374.         bit 7: MS-DOS process
  6375.         ES:DI buffer filled
  6376.     CF set on error (invalid process number)
  6377. SeeAlso: AH=E3h,AH=E5h
  6378. --------N-7FE5-------------------------------
  6379. INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME
  6380.     AH = E5h
  6381.     DS:DX -> ASCIZ task name
  6382.     BH = user number
  6383. Return: CF clear if successful
  6384.         AL = DOS process number
  6385.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  6386.     CF set on error (no match for name)
  6387. SeeAlso: AH=E3h,AH=E4h
  6388. --------N-7FE6-------------------------------
  6389. INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS
  6390.     AH = E6h
  6391. Return: AX = number of processes available to current user
  6392. SeeAlso: AH=E0h
  6393. --------N-7FE7-------------------------------
  6394. INT 7F - Alloy MW386 - REMOVE DOS TASK
  6395.     AH = E7h
  6396.     AL = DOS process number
  6397. Return: CF set on error (invalid process number or first process)
  6398. Note:    can only be called by a foreground task
  6399. SeeAlso: AH=E0h
  6400. --------N-7FE8-------------------------------
  6401. INT 7F - Alloy MW386 - DOS TASK DELAY
  6402.     AH = E8h
  6403.     CX = delay time in milliseconds
  6404. Note:    a delay of 0 may be used to surrender the current time slice
  6405. SeeAlso: INT 15/AX=1000h,INT 1A/AX=FF01h,INT 21/AH=EEh"DoubleDOS"
  6406. SeeAlso: INT 2F/AX=1680h
  6407. --------N-7FF0-------------------------------
  6408. INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP
  6409.     AH = F0h
  6410.     AL = group number
  6411.     DS:DX -> ASCIZ directory name
  6412. Return: CF clear if successful
  6413.         AX = status
  6414.         0002h directory not found
  6415.         0003h directory not found
  6416.         0005h directory in use, cannot be restricted
  6417.         02xxh restricted to group xxh
  6418.     CF set on error
  6419. Note:    the restriction on the directory may be removed by calling this
  6420.       function with group 0, then using AH=F1h to assign the directory to
  6421.       group 0
  6422. SeeAlso: AH=F1h,AH=F2h,AH=F3h
  6423. --------N-7FF1-------------------------------
  6424. INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP
  6425.     AH = F1h
  6426.     AL = group number
  6427.     DS:DX -> ASCIZ directory name
  6428. Notes:    performs permanent assignment to a group; no immediate action is taken
  6429.       unless the directory has been restricted with AH=F0h
  6430.     may be used to restrict a nonexistent directory
  6431. SeeAlso: AH=F0h
  6432. --------N-7FF2-------------------------------
  6433. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY
  6434.     AH = F2h
  6435.     CX = entry number
  6436.     ES:DI -> 64-byte buffer
  6437. Return: CF clear if successful
  6438.         buffer filled with 63-byte directory info and 1-byte group number
  6439.     CF set on error (invalid entry)
  6440. SeeAlso: AH=F0h,AH=F3h
  6441. --------N-7FF3-------------------------------
  6442. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP
  6443.     AH = F3h
  6444.     AL = group number
  6445.     CX = entry number
  6446.     ES:DI -> 64-byte buffer
  6447. Return: CF clear if successful
  6448.         CX = next entry number
  6449.         buffer filled with 63-byte directory info and 1-byte group number
  6450.     CF set on error (no more matching entries)
  6451. Note:    like AH=F2h, but only returns directories belonging to the specified
  6452.       group
  6453. SeeAlso: AH=F2h
  6454. --------N-7FF8-------------------------------
  6455. INT 7F - Alloy MW386 - ASSIGN USER TO GROUP
  6456.     AH = F8h
  6457.     AL = group number
  6458.     DL = user number
  6459.     DH = machine number (currently 00h)
  6460. Return: CF clear if successful
  6461.     CF set on error (user already in maximum number of groups)
  6462. Note:    each user is allowed eight group assignments
  6463. SeeAlso: AH=F9h,AH=FAh
  6464. --------N-7FF9-------------------------------
  6465. INT 7F - Alloy MW386 - REMOVE USER FROM GROUP
  6466.     AH = F9h
  6467.     AL = group number
  6468.     DL = user number
  6469.     DH = machine number (currently 00h)
  6470. Return: CF set if failed
  6471. SeeAlso: AH=F8h,AH=FAh
  6472. --------N-7FFA-------------------------------
  6473. INT 7F - Alloy MW386 - GET USER GROUP LIST
  6474.     AH = FAh
  6475.     DL = user number
  6476.     DH = machine number (currently 00h)
  6477.     ES:DI -> 16-byte buffer for group list
  6478. Return: CX = number of groups
  6479.     ES:DI buffer filled with group numbers
  6480. SeeAlso: AH=F8h,AH=F9h
  6481. --------N-7FFB-------------------------------
  6482. INT 7F - Alloy MW386 - ASSIGN GROUP NAME
  6483.     AH = FBh
  6484.     CL = group number
  6485.     ES:DI -> ASCIZ group name (max 17 bytes)
  6486. SeeAlso: AH=FCh
  6487. --------N-7FFC-------------------------------
  6488. INT 7F - Alloy MW386 - GET GROUP NAME
  6489.     AH = FCh
  6490.     CL = group number
  6491.     ES:DI -> 17-byte buffer for ASCIZ name
  6492. Return: ES:DI buffer filled
  6493. Note:    if the group has not been named, "(unnamed)" is returned
  6494. SeeAlso: AH=FBh
  6495. ----------80---------------------------------
  6496. INT 80 - Q-PRO4 - ???
  6497. --------r-80---------------------------------
  6498. INT 80 - reserved for BASIC
  6499. Note:    this vector and INT 81 through INT ED are modified but not restored by
  6500.       Direct Access v4.0, and may be left dangling by other programs
  6501.       written with the same version of compiled BASIC
  6502. SeeAlso: INT 81"BASIC"
  6503. --------s-80----BX0000-----------------------
  6504. INT 80 - SoundBlaster SBFM driver - GET VERSION
  6505.     BX = 0000h
  6506. Return: ???
  6507. Note:    SBFM installs at a free interrupt in the range 80h through BFh
  6508. SeeAlso: BX=0008h,INT 2F/AX=FBFBh
  6509. --------s-80----BX0001-----------------------
  6510. INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS
  6511.     BX = 0001h
  6512.     DX:AX -> music status byte
  6513. SeeAlso: BX=0000h,BX=0002h,BX=0003h
  6514. --------s-80----BX0002-----------------------
  6515. INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE
  6516.     BX = 0002h
  6517.     CX = number of instruments
  6518.     DX:AX -> instrument table
  6519. SeeAlso: BX=0000h,BX=0001h,BX=0005h
  6520. --------s-80----BX0003-----------------------
  6521. INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE
  6522.     BX = 0003h
  6523.     AX = clock rate divisor (1193180 / desired frequency in Hertz)
  6524.         FFFFh to restore to 18.2 Hz
  6525. SeeAlso: BX=0000h,BX=0001h,BX=0004h
  6526. --------s-80----BX0004-----------------------
  6527. INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE
  6528.     BX = 0004h
  6529.     AX = driver clock rate divisor (1193180 / frequency in Hertz)
  6530. Note:    default frequency is 96 Hz
  6531. SeeAlso: BX=0000h,BX=0003h
  6532. --------s-80----BX0005-----------------------
  6533. INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC
  6534.     BX = 0005h
  6535.     AX = semi-tone offset
  6536. SeeAlso: BX=0000h,BX=0002h,BX=0006h
  6537. --------s-80----BX0006-----------------------
  6538. INT 80 - SoundBlaster SBFM driver - PLAY MUSIC
  6539.     BX = 0006h
  6540.     DX:AX -> music block
  6541. Return: AX = status
  6542.         0000h successful
  6543.         0001h music already active
  6544. SeeAlso: BX=0000h,BX=0007h,BX=000Ah,INT 1A/AX=FF04h
  6545. --------s-80----BX0007-----------------------
  6546. INT 80 - SoundBlaster SBFM driver - STOP MUSIC
  6547.     BX = 0007h
  6548. Return: AX = status
  6549.         0000h successful
  6550.         0001h music not active
  6551. SeeAlso: BX=0000h,BX=0006h,BX=0009h,INT 1A/AX=FF05h
  6552. --------s-80----BX0008-----------------------
  6553. INT 80 - SoundBlaster SBFM driver - RESET DRIVER
  6554.     BX = 0008h
  6555. Return: AX = status
  6556.         0000h successful
  6557.         0001h music is active
  6558. SeeAlso: BX=0000h
  6559. --------s-80----BX0009-----------------------
  6560. INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC
  6561.     BX = 0009h
  6562. Return: AX = status
  6563.         0000h successful
  6564.         0001h no music active
  6565. SeeAlso: BX=0000h,BX=0007h,BX=000Ah,INT 1A/AX=FF01h
  6566. --------s-80----BX000A-----------------------
  6567. INT 80 - SoundBlaster SBFM driver - RESUME MUSIC
  6568.     BX = 000Ah
  6569. Return: AX = status
  6570.         0000h successful
  6571.         0001h no music paused
  6572. SeeAlso: BX=0000h,BX=0006h,BX=0009h
  6573. --------s-80----BX000B-----------------------
  6574. INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS
  6575.     BX = 000Bh
  6576.     DX:AX -> trap routine
  6577. SeeAlso: BX=0000h
  6578. --------N-8001-------------------------------
  6579. INT 80 - QPC Software PKTINT.COM - INITIALIZE
  6580.     AH = 01h
  6581. Return: AX = 0000h
  6582.     CX = FFFFh
  6583.     DX = FFFFh
  6584. Notes:    this interrupt is the WinQVTNet protected mode interface to Windows 3.0
  6585.     all buffer pointers are reset back to 0
  6586. --------N-8002-------------------------------
  6587. INT 80 - QPC Software PKTINT.COM - GET BUFFER ADDRESSES
  6588.     AH = 02h
  6589.     BX = extra bytes to allocate per packet
  6590. Return: AX = segment address of 10K buffer (for receives???)
  6591.     BX = segment address of 2K buffer (for sends???)
  6592. SeeAlso: AH=05h
  6593. --------N-8003-------------------------------
  6594. INT 80 - QPC Software PKTINT.COM - GET ENTRY POINT
  6595.     AH = 03h
  6596. Return: CX:DX -> receive call address
  6597. Note:    the returned address can be used in the packet driver calls since it
  6598.       will be a valid address in all DOS boxes
  6599. SeeAlso: AH=06h
  6600. --------N-8004-------------------------------
  6601. INT 80 - QPC Software PKTINT.COM - ENABLE???
  6602.     AH = 04h
  6603.     BX = ???
  6604. Return: ???
  6605. SeeAlso: AH=01h
  6606. --------N-8005-------------------------------
  6607. INT 80 - QPC Software PKTINT.COM - GET RECEIVE STATISTICS
  6608.     AH = 05h
  6609. Return: AX = amount of buffer currently in use
  6610.     BX = current offset in buffer
  6611.     CX = number of times receive has been called
  6612. SeeAlso: AH=02h
  6613. --------N-8006-------------------------------
  6614. INT 80 - QPC Software PKTINT.COM - REMOVE RECEIVED PACKET
  6615.     AH = 06h
  6616. Return: BX = next packet offset
  6617.     CX = number of bytes still buffered
  6618.     DX = size of packet released back into buffer pool
  6619. SeeAlso: AH=03h
  6620. --------r-81---------------------------------
  6621. INT 81 - reserved for BASIC
  6622. Note:    this vector is modified but not restored by Direct Access v4.0, and
  6623.       may be left dangling by other programs written with the same version
  6624.       of compiled BASIC
  6625. SeeAlso: INT 80"BASIC",INT 82"BASIC"
  6626. --------N-81---------------------------------
  6627. INT 81 - IBM TOKEN RING ADAPTER - ???
  6628. SeeAlso: INT 82"TOKEN RING",INT 91"TOKEN RING"
  6629. --------r-82---------------------------------
  6630. INT 82 - reserved for BASIC
  6631. SeeAlso: INT 81"BASIC",INT 83"BASIC"
  6632. --------N-82---------------------------------
  6633. INT 82 - IBM TOKEN RING ADAPTER - ???
  6634.     AH = function
  6635.         00h display message???
  6636.         DS:BX -> string
  6637.     ???
  6638. Return: ???
  6639. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  6640. --------r-83---------------------------------
  6641. INT 83 - reserved for BASIC
  6642. SeeAlso: INT 82"BASIC",INT 84"BASIC"
  6643. --------r-84---------------------------------
  6644. INT 84 - reserved for BASIC
  6645. SeeAlso: INT 83"BASIC",INT 85"BASIC"
  6646. --------r-85---------------------------------
  6647. INT 85 - reserved for BASIC
  6648. Note:    INT 80 through INT ED are modified but not restored by Direct Access
  6649.       v4.0, and may be left dangling by other programs written with the
  6650.       same version of compiled BASIC
  6651. SeeAlso: INT 84"BASIC",INT 86"BASIC"
  6652. --------N-86---------------------------------
  6653. INT 86 - NetBIOS - ORIGINAL INT 18
  6654. Note:    some implementations of NetBIOS reportedly relocate INT 18 here
  6655. SeeAlso: INT 18
  6656. --------r-86---------------------------------
  6657. INT 86 - IBM ROM BASIC - used while in interpreter
  6658. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6659.     BASIC.COM/BASICA.COM do not restore vector on termination
  6660. SeeAlso: INT 85"BASIC",INT 87"BASIC"
  6661. --------r-86---------------------------------
  6662. INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS
  6663. SeeAlso: INT 21/AH=4Ch,INT 87"APL"
  6664. --------r-87---------------------------------
  6665. INT 87 - IBM ROM BASIC - used while in interpreter
  6666. Notes:    called by ROM BASIC
  6667.     BASIC.COM/BASICA.COM do not restore vector on termination
  6668. SeeAlso: INT 86"BASIC",INT 88"BASIC"
  6669. --------r-87---------------------------------
  6670. INT 87 - APL*PLUS/PC - ???
  6671. SeeAlso: INT 86"APL",INT 88/AL=00h
  6672. --------v-87---------------------------------
  6673. INT 87 - VIRUS - "ZeroHunt" - VIRAL CODE (NOT A VECTOR!)
  6674. Note:    the ZeroHunt virus copies its resident code down to 0000h:021Ch and
  6675.       following
  6676. SeeAlso: INT 8B"VIRUS"
  6677. --------r-88---------------------------------
  6678. INT 88 - IBM ROM BASIC - used while in interpreter
  6679. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6680.     BASIC.COM/BASICA.COM do not restore vector on termination
  6681. SeeAlso: INT 87"BASIC",INT 89"BASIC"
  6682. --------r-88--00-----------------------------
  6683. INT 88 - APL*PLUS/PC - CREATE OBJECT OF ARBITRARY RANK OR SHAPE
  6684.     AL = 00h
  6685.     BX = STPTR of the variable to be assigned
  6686.     ES:SI -> model of type, rank, and shape (see below)
  6687. Return: ES:DI -> first data byte of object
  6688.     DX:CX = number of elements in the object
  6689. SeeAlso: INT C8"APL"
  6690.  
  6691. Format of shape model:
  6692. Offset    Size    Description
  6693.  00h    BYTE    type
  6694.         01h character (2-byte dimension sizes)
  6695.         02h integer (2-byte dimension sizes)
  6696.         08h floating point (2-byte dimension sizes)
  6697.         11h character (4-byte dimension sizes)
  6698.         12h integer (4-byte dimension sizes)
  6699.         18h floating point (4-byte dimension sizes)
  6700.  01h    BYTE    rank
  6701.  02h    WORD/DWORD first dimension of shape
  6702.  N    WORD/DWORD second dimension of shape
  6703.     ...
  6704. --------r-88--01-----------------------------
  6705. INT 88 - APL*PLUS/PC - CREATE CHARACTER SCALAR/VECTOR/MATRIX <64K IN SIZE
  6706.     AL = 01h
  6707.     AH = rank
  6708.     BX = STPTR of the variable to be assigned
  6709.     CX = first dimension (if any)
  6710.     DX = second dimension (if any)
  6711. Return: ES:DI -> object
  6712.     CX = number of elements in the object
  6713. Note:    each dimension must be 32767 or smaller
  6714. SeeAlso: AL=02h,AL=08h,INT C8"APL"
  6715. --------r-88--02-----------------------------
  6716. INT 88 - APL*PLUS/PC - CREATE INTEGER SCALAR/VECTOR/MATRIX <64K IN SIZE
  6717.     AL = 02h
  6718.     AH = rank
  6719.     BX = STPTR of the variable to be assigned
  6720.     CX = first dimension (if any)
  6721.     DX = second dimension (if any)
  6722. Return: ES:DI -> object
  6723.     CX = number of elements in the object
  6724. Note:    each dimension must be 32767 or smaller
  6725. SeeAlso: AL=01h,AL=08h,INT C8"APL"
  6726. --------r-88--08-----------------------------
  6727. INT 88 - APL*PLUS/PC - CREATE FLOATING POINT SCALAR/VECTOR/MATRIX <64K IN SIZE
  6728.     AL = 08h
  6729.     AH = rank
  6730.     BX = STPTR of the variable to be assigned
  6731.     CX = first dimension (if any)
  6732.     DX = second dimension (if any)
  6733. Return: ES:DI -> object
  6734.     CX = number of elements in the object
  6735. Note:    each dimension must be 32767 or smaller
  6736. SeeAlso: AL=01h,AL=02h,INT C8"APL"
  6737. --------r-88--F5-----------------------------
  6738. INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL
  6739.     AL = F5h
  6740.     BX = STPTR of object
  6741. SeeAlso: INT C8"APL"
  6742. --------r-88--F6-----------------------------
  6743. INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING
  6744.     AL = F6h
  6745.     BX = STPTR of object
  6746. SeeAlso: AL=F7h,AL=F8h,INT C8"APL"
  6747. --------r-88--F7-----------------------------
  6748. INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING
  6749.     AL = F7h
  6750.     BX = STPTR of object
  6751. SeeAlso: AL=F6h,AL=F8h,INT C8"APL"
  6752. --------r-88--F8-----------------------------
  6753. INT 88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING
  6754.     AL = F8h
  6755.     BX = STPTR of object
  6756. Return: BX = name's status
  6757.         0000h eligible
  6758.         0001h not eligible
  6759. SeeAlso: AL=F6h,AL=F7h,INT C8"APL"
  6760. --------r-88--F9-----------------------------
  6761. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  6762.     AL = F9h
  6763.     ES:SI -> name
  6764.     CX = length of name
  6765. Return: CF set if name ill-formed or already in use
  6766.         BX = STPTR if already in symbol table
  6767.     CF clear if name is available for use
  6768.         BX = 0000h
  6769. Note:    does not force the name into the workspace
  6770. SeeAlso: AL=FEh,AL=FFh,INT C8"APL"
  6771. --------r-88--FC-----------------------------
  6772. INT 88 - APL*PLUS/PC - DETERMINE IF MEMORY AVAIL WITHOUT GARBAGE COLLECTION
  6773.     AL = FCh
  6774.     BX = amount of memory needed (paragraphs)
  6775. Return: CF clear if memory available
  6776.     CF set if a workspace compaction is required
  6777. SeeAlso: AL=FDh,INT C8"APL"
  6778. --------r-88--FD-----------------------------
  6779. INT 88 - APL*PLUS/PC - PERFORM GARBAGE COLLECTION AND RETURN AVAILABLE MEMORY
  6780.     AL = FDh
  6781. Return: BX = number of paragraphs available in workspace
  6782. SeeAlso: AL=FCh,INT C8"APL"
  6783. --------r-88--FE-----------------------------
  6784. INT 88 - APL*PLUS/PC - CREATE NAME
  6785.     AL = FEh
  6786.     ES:SI -> name
  6787.     CX = length of name
  6788. Return: BX = STPTR of name
  6789.     DX = interpreter's data segment
  6790. SeeAlso: AL=F9h,AL=FFh,INT C8"APL"
  6791. --------r-88--FF-----------------------------
  6792. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  6793.     AL = FFh
  6794.     ES:SI -> name
  6795.     CX = length of name
  6796. Return: CF set if name ill-formed or already in use
  6797.         BX = STPTR if already in symbol table
  6798.     CF clear if name is available for use
  6799.         BX = 0000h
  6800. Note:    forces the name into the workspace and makes it immune from outswapping
  6801. SeeAlso: AL=F9h,AL=FEh,INT C8"APL"
  6802. --------r-89---------------------------------
  6803. INT 89 - IBM ROM BASIC - used while in interpreter
  6804. Notes:    called by ROM BASIC
  6805.     BASIC.COM/BASICA.COM do not restore vector on termination
  6806. SeeAlso: INT 88"BASIC",INT 8A"BASIC"
  6807. --------r-8A---------------------------------
  6808. INT 8A - IBM ROM BASIC - used while in interpreter
  6809. Notes:    called by ROM BASIC
  6810.     BASIC.COM/BASICA.COM do not restore vector on termination
  6811. SeeAlso: INT 89"BASIC",INT 8B"BASIC"
  6812. --------r-8A---------------------------------
  6813. INT 8A - APL*PLUS/PC - PRINT SCREEN
  6814. Note:    same as INT 05
  6815. SeeAlso: INT 05,INT 8C"APL",INT CA"APL"
  6816. --------r-8B---------------------------------
  6817. INT 8B - IBM ROM BASIC - used while in interpreter
  6818. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6819.     BASIC.COM/BASICA.COM do not restore vector on termination
  6820. SeeAlso: INT 8A"BASIC",INT 8C"BASIC"
  6821. --------r-8B---------------------------------
  6822. INT 8B - APL*PLUS/PC - BEEP
  6823. Note:    same as printing a ^G via INT 21/AH=02h
  6824. SeeAlso: INT 21/AH=02h,INT CB"APL"
  6825. --------v-8B---------------------------------
  6826. INT 8B - VIRUS - "ZeroHunt" - INSTALLATION CHECK (NOT A VECTOR!)
  6827. Note:    if the ZeroHunt virus is resident, this vector will contain either
  6828.       EE83h:019Bh (ZH-411) or EE83h:019Fh (ZH-415)
  6829. SeeAlso: INT 70"VIRUS",INT 87"VIRUS",INT 9C"VIRUS"
  6830. --------r-8C---------------------------------
  6831. INT 8C - IBM ROM BASIC - used while in interpreter
  6832. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6833.     BASIC.COM/BASICA.COM do not restore vector on termination
  6834. --------r-8C---------------------------------
  6835. INT 8C - APL*PLUS/PC - CLEAR SCREEN MEMORY
  6836.     AX = flag
  6837.         0000h do not save display attributes
  6838.         0001h save attributes
  6839. SeeAlso: INT CC"APL"
  6840. --------r-8D---------------------------------
  6841. INT 8D - IBM ROM BASIC - used while in interpreter
  6842. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6843.     BASIC.COM/BASICA.COM do not restore vector on termination
  6844. --------r-8E---------------------------------
  6845. INT 8E - IBM ROM BASIC - used while in interpreter
  6846. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6847.     BASIC.COM/BASICA.COM do not restore vector on termination
  6848. --------r-8F---------------------------------
  6849. INT 8F - IBM ROM BASIC - used while in interpreter
  6850. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6851.     BASIC.COM/BASICA.COM do not restore vector on termination
  6852. --------r-90---------------------------------
  6853. INT 90 - IBM ROM BASIC - used while in interpreter
  6854. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6855.     BASIC.COM/BASICA.COM do not restore vector on termination
  6856. --------r-90---------------------------------
  6857. INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER
  6858. --------r-91---------------------------------
  6859. INT 91 - IBM ROM BASIC - used while in interpreter
  6860. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6861.     BASIC.COM/BASICA.COM do not restore vector on termination
  6862. --------N-91---------------------------------
  6863. INT 91 - IBM TOKEN RING ADAPTER - ???
  6864. SeeAlso: INT 81"TOKEN RING",INT 82"TOKEN RING",INT 93"TOKEN RING"
  6865. --------r-92---------------------------------
  6866. INT 92 - IBM ROM BASIC - used while in interpreter
  6867. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6868.     BASIC.COM/BASICA.COM do not restore vector on termination
  6869. --------N-92---------------------------------
  6870. INT 92 - Sangoma X.25 INTERFACE PROGRAM
  6871.     BX:DX -> control block
  6872. SeeAlso: INT 68"Sangoma"
  6873. --------e-92E1-------------------------------
  6874. INT 92 - Da Vinci eMail Dispatcher INTERFACE
  6875.     AH = E1h
  6876.     AL = function
  6877.     BX = stack count (number of words to push)
  6878.     CX:DX -> stack data (in word-reversed order ready to push)
  6879. Return: AX = status (see below)
  6880. Note:    preserves BP, DS, SI, DI; other registers may be destroyed
  6881.  
  6882. Values for status:
  6883.  0001h    success
  6884.  FF97h    "ERS_NOT_AVAILABLE"
  6885.  FF99h    "ERS_TOO_MANY_NAMES"
  6886.  FF9Ah    "ERS_BAD_NAME_PASSWORD"
  6887.  FFE3h    "ERS_NAME_NOT_FOUND"
  6888.  FFF8h    "ERS_USE_STRING" (call NetGetError to get error string)
  6889.  FFFFh    "ERS_NO_SUCH_FILE"
  6890. --------e-92E100-----------------------------
  6891. INT 92 - Da Vinci eMail Dispatcher - "NetInitStart"
  6892.     AX = E100h
  6893.     BX = size of parameter block in words (000Ah)
  6894.     CX:DX -> parameter block (see below)
  6895. Return: AX = 0001h success
  6896. Desc:    this function is used to initialize the dispatcher
  6897. SeeAlso: AX=E101h,AX=E103h
  6898.  
  6899. Format of parameter block:
  6900. Offset    Size    Description
  6901.  00h    WORD    segment of ???
  6902.  02h    WORD    offset of ???
  6903.  04h    WORD    high part of long ???
  6904.  06h    WORD    low part of long ???
  6905.  08h    WORD    high part of long ???
  6906.  0Ah    WORD    low part of long ???
  6907.  0Ch    WORD    high part of long ???
  6908.  0Eh    WORD    low part of long ???
  6909.  10h    WORD    high part of long ???
  6910.  12h    WORD    low part of long ???
  6911. --------e-92E101BX0000-----------------------
  6912. INT 92 - Da Vinci eMail Dispatcher - "NetInitCheck"
  6913.     AX = E101h
  6914.     BX = 0000h
  6915.     CX:DX ignored
  6916. Return: AX = 0001h success
  6917. SeeAlso: AX=E100h,AX=E180h
  6918. --------e-92E102BX0000-----------------------
  6919. INT 92 - Da Vinci eMail Dispatcher - "NetCheckDriver"
  6920.     AX = E102h
  6921.     BX = 0000h
  6922.     CX:DX ignored
  6923. Return: AX = 0001h success
  6924. Desc:    this function is used to determine if the dispatcher is loaded
  6925. SeeAlso: AX=E10Bh,AX=E180h
  6926. --------e-92E103BX0000-----------------------
  6927. INT 92 - Da Vinci eMail Dispatcher - "NetTerminate"
  6928.     AX = E103h
  6929.     BX = 0000h
  6930.     CX:DX ignored
  6931. Return: AX = status (see AH=E1h)
  6932. SeeAlso: AX=E100h
  6933. --------e-92E104-----------------------------
  6934. INT 92 - Da Vinci eMail Dispatcher - "NetWhereIs"
  6935.     AX = E104h
  6936.     BX = size of parameter block in words (0006h)
  6937.     CX:DX -> parameter block (see below)
  6938. Return: AX = status (see AH=E1h)
  6939. Desc:    this function is used to verify node address for usernames
  6940. SeeAlso: AX=E180h
  6941.  
  6942. Format of parameter block:
  6943. Offset    Size    Description
  6944.  00h    WORD    segment of node address buffer
  6945.  02h    WORD    offset of node address buffer
  6946.  04h    WORD    segment of uppercase username
  6947.  06h    WORD    offset of uppercase username
  6948.  08h    WORD    segment of "DVSEMAIL"
  6949.  0Ah    WORD    offset of "DVSEMAIL"
  6950. --------e-92E105-----------------------------
  6951. INT 92 - Da Vinci eMail Dispatcher - "NetOpen"
  6952.     AX = E105h
  6953.     BX = size of parameter block in words (0007h)
  6954.     CX:DX -> parameter block (see below)
  6955. Return: AX = 0000h Error
  6956.     AX = handle
  6957. Desc:    this function is used to open a submission channel
  6958. SeeAlso: AX=E10Ah,AX=E106h,AX=E108h
  6959.  
  6960. Format of parameter block:
  6961. Offset    Size    Description
  6962.  00h    WORD    operation (1 = read, 2 = write)
  6963.  02h    WORD    segment of uppercase To: username
  6964.  04h    WORD    offset of uppercase To: username
  6965.  06h    WORD    segment of "DVSEMAIL"
  6966.  08h    WORD    offset of "DVSEMAIL"
  6967.  0Ah    WORD    segment of node address
  6968.  0Ch    WORD    offset of node address
  6969. --------e-92E106BX0004-----------------------
  6970. INT 92 - Da Vinci eMail Dispatcher - "NetRead"
  6971.     AX = E106h
  6972.     BX = 0004h
  6973.     CX:DX -> parameter block
  6974. Return: AX = 0001h
  6975. SeeAlso: AX=E108h
  6976. --------e-92E107BX0002-----------------------
  6977. INT 92 - Da Vinci eMail Dispatcher - "NetGetError"
  6978.     AX = E107h
  6979.     BX = 0002h
  6980.     CX:DX -> parameter block
  6981. Return: AX = 0001h
  6982. SeeAlso: AX=E109h,AX=E180h
  6983. --------e-92E108-----------------------------
  6984. INT 92 - Da Vinci eMail Dispatcher - "NetWrite"
  6985.     AX = E108h
  6986.     BX = size of parameter block in words (0004h)
  6987.     CX:DX -> parameter block (see below)
  6988. Return: AX = amount written
  6989. Desc:    This function is used to write transactions to the dispatcher.
  6990.       The command block is written first and then another call is used
  6991.       to write the associated data.
  6992. SeeAlso: AX=E106h
  6993.  
  6994. Format of parameter block:
  6995. Offset    Size    Description
  6996.  00h    WORD    buffer count
  6997.  02h    WORD    segment of command buffer
  6998.  04h    WORD    offset of command buffer
  6999.  06h    WORD    handle from NetOpen
  7000.  
  7001. Format of command buffer:
  7002. Offset    Size    Description
  7003.  00h    BYTE    command
  7004.         21h '!' Protocol commands for remote control
  7005.         41h 'A' Authorization protocol element
  7006.         42h 'B' Return(back) routing information
  7007.             Associated data is the From: username
  7008.         43h 'C' Carbon Copy list
  7009.             Associated data is a comma delimitted list of usernames
  7010.         44h 'D' Distribution list
  7011.             Associated data is a comma delimitted list of usernames
  7012.         45h 'E' Mail end marker
  7013.             No associated data
  7014.         48h 'H' Mail message header
  7015.             Associated data is a message header buffer
  7016.         4Dh 'M' Mail message
  7017.             Associated data is the body of the message
  7018.         4Fh 'O' Object
  7019.         50h 'P' Paperclip attachment
  7020.         52h 'R' Routing information
  7021.             Associated data is the To: username
  7022.         53h 'S' Subject
  7023.             Associated data is the subject of the message
  7024.         54h 'T' Trail of Reply/Forwards
  7025.  01h    BYTE    subcommand
  7026.  02h    DWORD    length of associated data
  7027.  
  7028. Format of message header buffer:
  7029. Offset    Size    Description
  7030.  00h 30 BYTEs    subject line
  7031.  1Eh 24 BYTEs    To
  7032.  36h 24 BYTEs    From
  7033.  4Eh    DWORD    Time
  7034.         BYTE    00h
  7035.         BYTE    hour
  7036.         BYTE    minute
  7037.         BYTE    second
  7038.  52h    DWORD    Date
  7039.         BYTE    00h
  7040.         BYTE    year
  7041.         BYTE    month
  7042.         BYTE    day
  7043.  56h    DWORD    serial number (00000000h)
  7044.  5Ah    WORD    mail types (see below)
  7045.  5Ch    WORD    special types (0)
  7046.  
  7047. Bitfields for mail types:
  7048.  bit 7    blind carbon copy
  7049.  bit 6    carbon copy
  7050.  bit 5    priority
  7051.  bit 4    confidential
  7052.  bit 3    certified
  7053.  bit 2    bulk
  7054.  bits 1-0 class (first, second, third, bulk)
  7055. --------e-92E109-----------------------------
  7056. INT 92 - Da Vinci eMail Dispatcher - "NetErrorFix" (UNUSED)
  7057.     AX = E109h
  7058.     BX = size of parameter block in words (0001h)
  7059.     CX:DX -> parameter block (see below)
  7060. Return: AX = FF97h (ERS_NOT_AVAILABLE)
  7061. SeeAlso: AX=E107h,AX=E180h
  7062.  
  7063. Format of parameter block:
  7064. Offset    Size    Description
  7065.  00h    WORD    ???
  7066. --------e-92E10A-----------------------------
  7067. INT 92 - Da Vinci eMail Dispatcher - "NetClose"
  7068.     AX = E10Ah
  7069.     BX = size of parameter block in words (0001h)
  7070.     CX:DX -> parameter block (see below)
  7071. Return: AX = 0001h
  7072. Desc:    this function is used to close a dispatcher handle
  7073. SeeAlso: AX=E105h
  7074.  
  7075. Format of parameter block:
  7076. Offset    Size    Description
  7077.  00h    WORD    handle from NetOpen
  7078. --------e-92E10B-----------------------------
  7079. INT 92 - Da Vinci eMail Dispatcher - "NetCheckQueue"
  7080.     AX = E10Bh
  7081.     BX = size of parameter block in words (0004h)
  7082.     CX:DX -> parameter block (see below)
  7083. Return: AX = 0001h
  7084. SeeAlso: AX=E102h,AX=E10Ch
  7085.  
  7086. Format of parameter block:
  7087. Offset    Size    Description
  7088.  00h    WORD    segment of 24-byte username buffer
  7089.  02h    WORD    offset of 24-byte username buffer
  7090.  04h    WORD    segment of 24-byte protocol buffer
  7091.  06h    WORD    offset of 24-byte protocol buffer
  7092. --------e-92E10C-----------------------------
  7093. INT 92 - Da Vinci eMail Dispatcher - "NetReadQueue"
  7094.     AX = E10Ch
  7095.     BX = size of parameter block in words (0002h)
  7096.     CX:DX -> parameter block (see below)
  7097. Return: AX = 0001h
  7098. SeeAlso: AX=E10Bh
  7099.  
  7100. Format of parameter block:
  7101. Offset    Size    Description
  7102.  00h    WORD    Segment of 128 byte node address buffer
  7103.  02h    WORD    Offset of 128 byte node address buffer
  7104. --------e-92E10D-----------------------------
  7105. INT 92 - Da Vinci eMail Dispatcher - "NetSubmitName"
  7106.     AX = E10Dh
  7107.     BX = size of parameter block in words (0006h)
  7108.     CX:DX -> parameter block (see below)
  7109. Return: AX = status (see AH=E1h)
  7110. Desc:    this function is used to verify username/password
  7111. SeeAlso: AX=E10Eh
  7112.  
  7113. Format of parameter block:
  7114. Offset    Size    Description
  7115.  00h    WORD    segment of uppercase password string
  7116.  02h    WORD    offset of uppercase password string
  7117.  04h    WORD    segment of uppercase username string
  7118.  06h    WORD    offset of uppercase username string
  7119.  08h    WORD    segment of "DVSEMAIL"
  7120.  0Ah    WORD    offset of "DVSEMAIL"
  7121. --------e-92E10E-----------------------------
  7122. INT 92 - Da Vinci eMail Dispatcher - "NetRemoveName"
  7123.     AX = E10Eh
  7124.     BX = size of parameter block in words (0004h)
  7125.     CX:DX -> parameter block (see below)
  7126. Return: AX = 0001h
  7127. Desc:    this function is used to remove a username
  7128. SeeAlso: AX=E10Dh
  7129.  
  7130. Format of parameter block:
  7131. Offset    Type    Description
  7132.  00h    WORD    segment of uppercase username
  7133.  02h    WORD    offset of uppercase username
  7134.  04h    WORD    segment of "DVSEMAIL"
  7135.  06h    WORD    offset of "DVSEMAIL"
  7136. --------e-92E10FBX0000-----------------------
  7137. INT 92 - Da Vinci eMail Dispatcher - IS ANYONE THERE? QUERY
  7138.     AX = E10Fh
  7139.     BX = 0000h
  7140.     CX:DX ignored
  7141. Return: AX = 0001h
  7142. SeeAlso: AX=E180h
  7143. --------e-92E110-----------------------------
  7144. INT 92 - Da Vinci eMail Dispatcher - "NetGetAltRoute"
  7145.     AX = E110h
  7146.     BX = size of parameter block in words (0006h)
  7147.     CX:DX -> parameter block (see below)
  7148. Return: AX = 0001h
  7149. SeeAlso: AX=E111h,AX=E113h
  7150.  
  7151. Format of parameter block:
  7152. Offset    Size    Description
  7153.  00h  6 WORDs    ???
  7154. --------e-92E111-----------------------------
  7155. INT 92 - Da Vinci eMail Dispatcher - "NetDeleteAltRoutes"
  7156.     AX = E111h
  7157.     BX = size of parameter block in words (0004h)
  7158.     CX:DX -> parameter block (see below)
  7159. Return: AX = 0001h
  7160. SeeAlso: AX=E110h,AX=E113h
  7161.  
  7162. Format of parameter block:
  7163. Offset    Size    Description
  7164.  00h  4 WORDs    ???
  7165. --------e-92E112-----------------------------
  7166. INT 92 - Da Vinci eMail Dispatcher - "NetChangePassword"
  7167.     AX = E112h
  7168.     BX = size of parameter block in words (0008h)
  7169.     CX:DX -> parameter block (see below)
  7170. Return: AX = 0001h
  7171. SeeAlso: AX=E180h
  7172.  
  7173. Format of parameter block:
  7174. Offset    Size    Description
  7175.  00h  8 WORDs    ???
  7176. --------e-92E113-----------------------------
  7177. INT 92 - Da Vinci eMail Dispatcher - "NetSetAltRoute"
  7178.     AX = E113h
  7179.     BX = size of parameter block in words (0008h)
  7180.     CX:DX -> parameter block (see below)
  7181. Return: AX = 0001h
  7182. SeeAlso: AX=E110h,AX=E111h
  7183.  
  7184. Format of parameter block:
  7185. Offset    Size    Description
  7186.  00h  8 WORDs    ???
  7187. --------e-92E175-----------------------------
  7188. INT 92 - Da Vinci eMail Dispatcher - BECOME MICRO TSR
  7189.     AX = E175h
  7190. Return: AX = 0012h
  7191.     BX = PSP
  7192. SeeAlso: AX=E180h
  7193. --------e-92E180-----------------------------
  7194. INT 92 - Da Vinci eMail Dispatcher - INSTALLATION CHECK
  7195.     AX = E180h
  7196. Return: AX = 0012h if installed
  7197.     ES:DX -> '$'-terminated driver information string
  7198. SeeAlso: AX=E102h,AX=E105h,AX=E10Fh,AX=E175h
  7199. --------r-93---------------------------------
  7200. INT 93 - IBM ROM BASIC - used while in interpreter
  7201. Notes:    called by ROM BASIC
  7202.     BASIC.COM/BASICA.COM do not restore vector on termination
  7203. --------N-93---------------------------------
  7204. INT 93 - IBM TOKEN RING ADAPTER - ???
  7205. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  7206. --------r-94---------------------------------
  7207. INT 94 - IBM ROM BASIC - used while in interpreter
  7208. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7209.     BASIC.COM/BASICA.COM do not restore vector on termination
  7210. --------s-94----SI0000-----------------------
  7211. INT 94 u - PCM driver - INITIALIZE SOUND
  7212.     SI = 0000h
  7213.     ES:BX -> parameters
  7214. Return: ???
  7215. Program: PCM.COM is a sound driver for Media Vision's Pro Audio Spectrum
  7216.       sound boards
  7217. Note:    the installation check consists of testing for the signature string
  7218.       "PCMDRIVER" immediately preceding the interrupt handler; the word
  7219.       preceding the signature gives the PCM driver's version
  7220. SeeAlso: SI=0001h,SI=0002h,SI=0003h,SI=0004h,SI=0005h,SI=000Ah
  7221. Index:    installation check;PCM driver|PCM.COM;installation check
  7222. Index:    PCM driver;installation check
  7223. --------s-94----SI0001-----------------------
  7224. INT 94 u - PCM driver - INITIALIZE PCM
  7225.     SI = 0001h
  7226.     ES:BX -> parameters
  7227. Return: ???
  7228. SeeAlso: SI=0000h,SI=0002h,SI=0003h,SI=000Ah
  7229. --------s-94----SI0002-----------------------
  7230. INT 94 u - PCM driver - INITIALIZE PCM INFO
  7231.     SI = 0002h
  7232.     ES:BX -> parameters (see below)
  7233. Return: ???
  7234. SeeAlso: SI=0000h,SI=0001h,SI=0003h,SI=000Ah
  7235.  
  7236. Format of parameters:
  7237. Offset    Size    Description
  7238.  00h    DWORD    rate
  7239.  04h    WORD    channel number
  7240.  06h    WORD    "comp"
  7241.  08h    WORD    "dsize"
  7242. --------s-94----SI0003-----------------------
  7243. INT 94 u - PCM driver - INITIALIZE DMA BUFFER
  7244.     SI = 0003h
  7245.     ES:BX -> parameters (see below)
  7246. Return: ???
  7247. SeeAlso: SI=0000h,SI=000Ah,SI=000Bh
  7248.  
  7249. Format of parameters:
  7250. Offset    Size    Description
  7251.  00h    DWORD    -> DMA buffer
  7252.  04h    WORD    size of DMA buffer
  7253.  06h    WORD    number of divisions
  7254. --------s-94----SI0004-----------------------
  7255. INT 94 u - PCM driver - INITIALIZE USER FUNCTION
  7256.     SI = 0004h
  7257.     ES:BX -> parameters (see below)
  7258. Return: ???
  7259. SeeAlso: SI=0000h,SI=0001h
  7260.  
  7261. Format of parameters:
  7262. Offset    Size    Description
  7263.  00h    DWORD    -> user function
  7264. --------s-94----SI0005-----------------------
  7265. INT 94 u - PCM driver - BEGIN AUDIO PLAY
  7266.     SI = 0005h
  7267. Return: ???
  7268. SeeAlso: SI=0000h,SI=0006h,SI=0007h,SI=0009h
  7269. --------s-94----SI0006-----------------------
  7270. INT 94 u - PCM driver - BEGIN AUDIO RECORD
  7271.     SI = 0006h
  7272. Return: ???
  7273. SeeAlso: SI=0005h,SI=0007h,SI=0009h
  7274. --------s-94----SI0007-----------------------
  7275. INT 94 u - PCM driver - PAUSE AUDIO PLAY/RECORD
  7276.     SI = 0007h
  7277. Return: ???
  7278. SeeAlso: SI=0005h,SI=0006h,SI=0008h
  7279. --------s-94----SI0008-----------------------
  7280. INT 94 u - PCM driver - RESUME AUDIO PLAY/RECORD
  7281.     SI = 0008h
  7282. Return: ???
  7283. SeeAlso: SI=0007h
  7284. --------s-94----SI0009-----------------------
  7285. INT 94 u - PCM driver - STOP AUDIO PLAY/RECORD
  7286.     SI = 0009h
  7287. Return: ???
  7288. SeeAlso: SI=0005h,SI=0006h,SI=0007h
  7289. --------s-94----SI000A-----------------------
  7290. INT 94 u - PCM driver - UNHOOK INTERRUPTS AND TURN OFF DMA
  7291.     SI = 000Ah
  7292. Return: ???
  7293. SeeAlso: SI=0000h,SI=0001h,SI=0003h
  7294. Index:    uninstall;PCM driver
  7295. --------s-94----SI000B-----------------------
  7296. INT 94 u - PCM driver - FIND VALID DMA BUFFER IN HUGE MEMORY BLOCK
  7297.     SI = 000Bh
  7298.     ES:BX -> parameters (see below)
  7299. Return: ???
  7300. SeeAlso: SI=0003h
  7301.  
  7302. Format of parameters:
  7303. Offset    Size    Description
  7304.  00h    DWORD    -> memory block to contain DMA buffer
  7305.  04h    WORD    desired size of DMA buffer
  7306. --------s-94----SI000D-----------------------
  7307. INT 94 u - Media Vision PCM.COM - GET STATUS
  7308.     SI = 000Dh
  7309. Return: AX = status (0000h = waiting) (see below)
  7310.  
  7311. Bitfields for status:
  7312.  bit 0    playing
  7313.  bit 1    recording
  7314.  bit 2    SBplaying
  7315.  bit 3    SBrecording
  7316.  bit 14 SBpaused
  7317.  bit 15 paused
  7318. --------s-94----SI8000-----------------------
  7319. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER ADDRESS
  7320.     SI = 8000h
  7321. Return: DX:AX -> DMA buffer
  7322. Program: PCM.COM is a superset of the standard PCM driver which provides
  7323.       additional functions for fine control of the driver
  7324. Note:    the installation check for the Media Vision PCM.COM "shark" functions
  7325.       consists of testing for the signature "PCM-SHARK" at offset 107h in
  7326.       the INT 94 handler's segment
  7327. SeeAlso: SI=8001h,SI=8004h
  7328. Index:    installation check;Media Vision PCM.COM|PCM.COM;installation check
  7329. Index:    Media Vision PCM.COM;"shark" functions
  7330. --------s-94----SI8001-----------------------
  7331. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER SIZE AND DIVISIONS
  7332.     SI = 8001h
  7333. Return: AX = DMA buffer size
  7334.     DX = divisions
  7335. SeeAlso: SI=8000h
  7336. --------s-94----SI8002-----------------------
  7337. INT 94 u - Media Vision PCM.COM - CHECK BOARD ADDRESS
  7338.     SI = 8002h
  7339. Return: AX = status
  7340.         0000h if board not at specified I/O address
  7341.         other if board found
  7342. Note:    the I/O address is specified by ORing the base I/O port shifted left
  7343.       four bits into SI before calling INT 94
  7344. SeeAlso: SI=8000h
  7345. --------s-94----SI8004-----------------------
  7346. INT 94 u - Media Vision PCM.COM - GET INTERNAL NOTE BUFFER
  7347.     SI = 8004h
  7348. Return: AX = offset of note buffer (segment = segment of internal DMA buffer)
  7349.     DX = size of buffer in note structures
  7350. SeeAlso: SI=8000h
  7351. --------s-94----SI8005-----------------------
  7352. INT 94 u - Media Vision PCM.COM - SINGLE-STEP QUEUE
  7353.     SI = 8005h
  7354. Return: ???
  7355. --------s-94----SI8011-----------------------
  7356. INT 94 u - Media Vision PCM.COM - INITIALIZE
  7357.     SI = 8011h
  7358.     ES:BX -> "iobf91" structure
  7359. Return: ???
  7360. --------s-94----SI8012-----------------------
  7361. INT 94 u - Media Vision PCM.COM - LOAD SOUND FOR LATER PLAY THROUGH KEYBOARD
  7362.     SI = 8012h
  7363.     ES:BX -> "i94f92buf" structure
  7364. Return: ???
  7365. SeeAlso: SI=8013h,SI=8014h
  7366. --------s-94----SI8013-----------------------
  7367. INT 94 u - Media Vision PCM.COM - GET INTERNAL SOUND USAGE
  7368.     SI = 8013h
  7369. Return: AX = number of sounds used
  7370.     DX = maximum handles
  7371. --------s-94----SI8014-----------------------
  7372. INT 94 u - Media Vision PCM.COM - GET DATA FOR SPECIFIED SOUND
  7373.     SI = 8014h
  7374.     ES:BX -> "i94f92buf" structure to be filled in
  7375.         sound number field set to desired sound
  7376. Return: AX = status
  7377.         0000h successful
  7378.         FFFFh sound number out of range
  7379. SeeAlso: SI=8012h,SI=8013h
  7380. --------s-94----SI8015-----------------------
  7381. INT 94 u - Media Vision PCM.COM - GET/SET INTERNAL DMA BUFFER
  7382.     SI = 8015h
  7383.     ES:BX -> DMA info structure (see below)
  7384. Return: ???
  7385.  
  7386. Format of DMA info structure:
  7387. Offset    Size    Description
  7388.  00h    DWORD    -> DMA buffer (offset FFFFh = return current buffer info)
  7389.  04h    WORD    DMA buffer size
  7390.  06h    WORD    divisions
  7391. --------s-94----SI8016-----------------------
  7392. INT 94 u - Media Vision PCM.COM - SIMULATE DOUBLE-SHIFT HOTKEY
  7393.     SI = 8016h
  7394.     AX = hotkey number (01h-08h)
  7395. Return: ???
  7396. SeeAlso: AL=02h/SI=8017h
  7397. --------s-94--01SI8017-----------------------
  7398. INT 94 u - Media Vision PCM.COM - CTRL-G INTERCEPT
  7399.     AL = 01h
  7400.     SI = 8017h
  7401.     AH = new state (00h off, 01h on)
  7402. Return: ???
  7403. SeeAlso: AL=02h/SI=8017h
  7404. --------s-94--02SI8017-----------------------
  7405. INT 94 u - Media Vision PCM.COM - DOUBLE-SHIFT-HOTKEY SOUND FEATURE
  7406.     AL = 02h
  7407.     SI = 8017h
  7408.     AH = new state (00h off, 01h on)
  7409. Return: ???
  7410. --------s-94--04SI8017-----------------------
  7411. INT 94 u - Media Vision PCM.COM - RANDOM SOUND FEATURE
  7412.     AL = 04h
  7413.     SI = 8017h
  7414.     AH = new state
  7415.         00h off
  7416.         01h on
  7417.         CX = minimum delay
  7418.         DX = maximum delay
  7419. Return: ???
  7420. --------s-94--08SI8017-----------------------
  7421. INT 94 u - Media Vision PCM.COM - NO ACTIVITY FEATURE
  7422.     AL = 08h
  7423.     SI = 8017h
  7424.     AH = new state
  7425.         00h off
  7426.         01h on
  7427.         DX:CX = delay
  7428. Return: ???
  7429. SeeAlso: AL=10h/SI=8017h
  7430. --------s-94--10SI8017-----------------------
  7431. INT 94 u - Media Vision PCM.COM - TIMER CONTROL
  7432.     AL = 10h
  7433.     SI = 8017h
  7434.     AH bit 7: set timer
  7435.     AH bit 6: timer active (timer turned off if clear)
  7436.     AH bits 5-0: timer number
  7437.     DX:CX = delay if AH bit 7 set (one-shot if DX bit 15 set)
  7438. Return: ???
  7439. SeeAlso: AL=08h/SI=8017h
  7440. --------s-94----SI8018-----------------------
  7441. INT 94 u - Media Vision PCM.COM - GET INFO
  7442.     SI = 8018h
  7443.     AL = what to get
  7444.         00h "F92state"
  7445.         01h "F92bkgd"
  7446.         02h "I10timer"
  7447.         03h "I08state"
  7448. Return: DX:AX -> desired information
  7449. --------r-95---------------------------------
  7450. INT 95 - IBM ROM BASIC - used while in interpreter
  7451. Notes:    called by ROM BASIC
  7452.     BASIC.COM/BASICA.COM do not restore vector on termination
  7453. --------r-95---------------------------------
  7454. INT 95 - APL*PLUS/PC - DETERMINE R= SPACE
  7455. Note:    use only when the R= option is invoked on entering APL
  7456. --------r-96---------------------------------
  7457. INT 96 - IBM ROM BASIC - used while in interpreter
  7458. Notes:    called by ROM BASIC
  7459.     BASIC.COM/BASICA.COM do not restore vector on termination
  7460. --------r-97---------------------------------
  7461. INT 97 - IBM ROM BASIC - used while in interpreter
  7462. Notes:    called by ROM BASIC
  7463.     BASIC.COM/BASICA.COM do not restore vector on termination
  7464. --------r-98---------------------------------
  7465. INT 98 - IBM ROM BASIC - used while in interpreter
  7466. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7467.     BASIC.COM/BASICA.COM do not restore vector on termination
  7468. --------r-99---------------------------------
  7469. INT 99 - IBM ROM BASIC - used while in interpreter
  7470. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7471.     BASIC.COM/BASICA.COM do not restore vector on termination
  7472. --------r-9A---------------------------------
  7473. INT 9A - IBM ROM BASIC - used while in interpreter
  7474. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7475.     BASIC.COM/BASICA.COM do not restore vector on termination
  7476. --------r-9B---------------------------------
  7477. INT 9B - IBM ROM BASIC - used while in interpreter
  7478. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7479.     BASIC.COM/BASICA.COM do not restore vector on termination
  7480. --------r-9C---------------------------------
  7481. INT 9C - IBM ROM BASIC - used while in interpreter
  7482. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7483.     BASIC.COM/BASICA.COM do not restore vector on termination
  7484. --------v-9C---------------------------------
  7485. INT 9C - VIRUS - "INT13" - ORIGINAL INT 13h VECTOR
  7486. SeeAlso: INT 8B"VIRUS",INT 9D"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  7487. --------r-9D---------------------------------
  7488. INT 9D - IBM ROM BASIC - used while in interpreter
  7489. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7490.     BASIC.COM/BASICA.COM do not restore vector on termination
  7491. --------v-9D---------------------------------
  7492. INT 9D - VIRUS - "INT13" - ROM INT 13h ENTRY POINT
  7493. Note:    this vector is used by the virus to store the result of a call to
  7494.       INT 2F/AH=13h
  7495. SeeAlso: INT 2F/AH=13h,INT 9C"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  7496. --------r-9E---------------------------------
  7497. INT 9E - IBM ROM BASIC - used while in interpreter
  7498. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7499.     BASIC.COM/BASICA.COM do not restore vector on termination
  7500. --------v-9E---------------------------------
  7501. INT 9E - VIRUS - "INT13" - ORIGINAL INT 21h VECTOR
  7502. SeeAlso: INT 70"VIRUS",INT 9C"VIRUS",INT 9D"VIRUS",INT E0"VIRUS"
  7503. --------r-9F---------------------------------
  7504. INT 9F - IBM ROM BASIC - used while in interpreter
  7505. Notes:    called by ROM BASIC
  7506.     BASIC.COM/BASICA.COM do not restore vector on termination
  7507. --------v-9F---------------------------------
  7508. INT 9F - VIRUS - "INT13" - STORAGE FOR USER INT 13h VECTOR
  7509. Note:    while it is infecting a file, the INT13 virus grabs INT 13 and uses
  7510.       this interrupt to store the existing INT 13 vector for later
  7511.       restoration
  7512. SeeAlso: INT 9C"VIRUS",INT 9D"VIRUS"
  7513. --------r-A0---------------------------------
  7514. INT A0 - IBM ROM BASIC - used while in interpreter
  7515. Notes:    called by ROM BASIC
  7516.     BASIC.COM/BASICA.COM do not restore vector on termination
  7517. --------r-A0---------------------------------
  7518. INT A0 - APL*PLUS/PC - USED BY APL/GSS*CGI GRAPHICS INTERFACE
  7519. SeeAlso: INT 59
  7520. --------r-A1---------------------------------
  7521. INT A1 - IBM ROM BASIC - used while in interpreter
  7522. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7523.     BASIC.COM/BASICA.COM do not restore vector on termination
  7524. --------r-A2---------------------------------
  7525. INT A2 - IBM ROM BASIC - used while in interpreter
  7526. Notes:    called by ROM BASIC
  7527.     BASIC.COM/BASICA.COM do not restore vector on termination
  7528. --------r-A3---------------------------------
  7529. INT A3 - IBM ROM BASIC - used while in interpreter
  7530. Notes:    called by ROM BASIC
  7531.     BASIC.COM/BASICA.COM do not restore vector on termination
  7532. --------r-A4---------------------------------
  7533. INT A4 - IBM ROM BASIC - used while in interpreter
  7534. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7535.     BASIC.COM/BASICA.COM do not restore vector on termination
  7536. --------U-A4---------------------------------
  7537. INT A4 U - Right Hand Man - API
  7538.     AH = function number (v3.3 supports functions 00h-52h)
  7539. Return: CF set on error
  7540.     CF clear if successful
  7541. Program: Right Hand Man is a TSR desk-top utility originally by Red E Products
  7542.       which has evolved into Futurus Team
  7543. Note:    this interrupt is only hooked while popped up
  7544. SeeAlso: INT 2F/AX=A4E0h
  7545. --------r-A5---------------------------------
  7546. INT A5 - IBM ROM BASIC - used while in interpreter
  7547. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7548.     BASIC.COM/BASICA.COM do not restore vector on termination
  7549. --------r-A6---------------------------------
  7550. INT A6 - IBM ROM BASIC - used while in interpreter
  7551. Notes:    called by ROM BASIC
  7552.     BASIC.COM/BASICA.COM do not restore vector on termination
  7553. --------r-A7---------------------------------
  7554. INT A7 - IBM ROM BASIC - used while in interpreter
  7555. Notes:    called by ROM BASIC
  7556.     BASIC.COM/BASICA.COM do not restore vector on termination
  7557. --------r-A8---------------------------------
  7558. INT A8 - IBM ROM BASIC - used while in interpreter
  7559. Notes:    called by ROM BASIC
  7560.     BASIC.COM/BASICA.COM do not restore vector on termination
  7561. --------r-A9---------------------------------
  7562. INT A9 - IBM ROM BASIC - used while in interpreter
  7563. Notes:    called by ROM BASIC
  7564.     BASIC.COM/BASICA.COM do not restore vector on termination
  7565. --------r-AA---------------------------------
  7566. INT AA - IBM ROM BASIC - used while in interpreter
  7567. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7568.     BASIC.COM/BASICA.COM do not restore vector on termination
  7569. --------r-AB---------------------------------
  7570. INT AB - IBM ROM BASIC - used while in interpreter
  7571. Notes:    called by ROM BASIC
  7572.     BASIC.COM/BASICA.COM do not restore vector on termination
  7573. --------r-AC---------------------------------
  7574. INT AC - IBM ROM BASIC - used while in interpreter
  7575. Notes:    called by ROM BASIC
  7576.     BASIC.COM/BASICA.COM do not restore vector on termination
  7577. --------r-AD---------------------------------
  7578. INT AD - IBM ROM BASIC - used while in interpreter
  7579. Notes:    called by ROM BASIC
  7580.     BASIC.COM/BASICA.COM do not restore vector on termination
  7581. --------r-AE---------------------------------
  7582. INT AE - IBM ROM BASIC - used while in interpreter
  7583. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7584.     BASIC.COM/BASICA.COM do not restore vector on termination
  7585. --------r-AF---------------------------------
  7586. INT AF - IBM ROM BASIC - used while in interpreter
  7587. Notes:    called by ROM BASIC
  7588.     BASIC.COM/BASICA.COM do not restore vector on termination
  7589. --------r-B0---------------------------------
  7590. INT B0 - IBM ROM BASIC - used while in interpreter
  7591. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7592.     BASIC.COM/BASICA.COM do not restore vector on termination
  7593. --------r-B1---------------------------------
  7594. INT B1 - IBM ROM BASIC - used while in interpreter
  7595. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7596.     BASIC.COM/BASICA.COM do not restore vector on termination
  7597. --------r-B2---------------------------------
  7598. INT B2 - IBM ROM BASIC - used while in interpreter
  7599. Notes:    called by ROM BASIC
  7600.     BASIC.COM/BASICA.COM do not restore vector on termination
  7601. --------r-B3---------------------------------
  7602. INT B3 - IBM ROM BASIC - used while in interpreter
  7603. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7604.     BASIC.COM/BASICA.COM do not restore vector on termination
  7605. --------U-B370-------------------------------
  7606. INT B3 - ZIPKEY - GET VERSION
  7607.     AH = 70h
  7608. Return: AH = major version
  7609.     AL = minor version
  7610.     CL = number of states and territories in current database
  7611.     DH = year of current database - 1900
  7612.     DL = month of current database's file date
  7613. Return: AX destroyed
  7614. Program: ZIPKEY is a resident ZIPCODE database by Eric Isaacson
  7615. Note:    if installed, the string "ZIPKEY" is present at offset 75h in the
  7616.       interrupt handler's segment, and the byte at 7Bh contains the API
  7617.       version number (00h for v1.x, 01h for v2.0)
  7618. --------U-B371-------------------------------
  7619. INT B3 - ZIPKEY - CONVERT TWO-LETTER ABBREVIATION TO STATE CODE
  7620.     AH = 71h
  7621.     BX = abbreviation, in either case (first letter in BL)
  7622. Return: CF set on error
  7623.         AL = FFh
  7624.     CF clear if successful
  7625.         AL = ZIPKEY state code
  7626. SeeAlso: AH=72h
  7627. --------U-B372-------------------------------
  7628. INT B3 - ZIPKEY - CONVERT STATE CODE TO TWO-LETTER ABBREVIATION
  7629.     AH = 72h
  7630.     BL = ZIPKEY state code
  7631. Return: CF set on error
  7632.         AX destroyed
  7633.     CF clear if successful
  7634.         AX = abbreviation, in upper case
  7635. SeeAlso: AH=71h,AH=73h
  7636. --------U-B373-------------------------------
  7637. INT B3 - ZIPKEY - CONVERT STATE CODE TO STATE NAME
  7638.     AH = 73h
  7639.     BL = ZIPKEY state code
  7640.     ES:DI -> buffer for name
  7641. Return: CF set on error
  7642.         AX destroyed
  7643.     CF clear if successful
  7644.         ES:DI points one byte beyond end of name
  7645. SeeAlso: AH=72h
  7646. --------U-B374-------------------------------
  7647. INT B3 - ZIPKEY - CONVERT ZIPCODE TO ASCII DIGITS
  7648.     AH = 74h
  7649.     DX = zipcode region (0-999)
  7650.     CH = last two digits of zipcode (0-99)
  7651.     ES:DI -> buffer
  7652. Return: CF set on error
  7653.         AX destroyed
  7654.     CF clear if successful
  7655.         ES:DI points one byte beyond end of digit string
  7656. --------U-B375-------------------------------
  7657. INT B3 - ZIPKEY - LOOK UP STATE CODE FOR ZIPCODE
  7658.     AH = 75h
  7659.     DX = zipcode region (0-999)
  7660.     CH = last two digits of zipcode (0-99)
  7661. Return: CF set on error (zipcode not found)
  7662.         AL = suggested state code, FFh if none
  7663.     CF clear if successful
  7664.         AL = ZIPKEY state code
  7665.         BX = area code (v2.0+)
  7666. SeeAlso: AH=76h,AH=79h
  7667. --------U-B376-------------------------------
  7668. INT B3 - ZIPKEY - LOOK UP CITY AND STATE FOR ZIPCODE
  7669.     AH = 76h
  7670.     DX = zipcode region (0-999)
  7671.     CH = last two digits of zipcode (0-99)
  7672.     ES:DI -> buffer for name
  7673. Return: CF set on error
  7674.         AL = suggested state code, FFh if none
  7675.         ES:DI buffer filled with suggested city name
  7676.     CF clear if successful
  7677.         AL = ZIPKEY state code
  7678.         BX = area code (v2.0+)
  7679.         ES:DI points one byte beyond end of name
  7680. SeeAlso: AH=75h,AH=78h,AH=7Eh
  7681. --------U-B377-------------------------------
  7682. INT B3 - ZIPKEY - PLAY BACK EXIT KEY FOR ENTRY WITH GIVEN ZIPCODE
  7683.     AH = 77h
  7684.     DX = zipcode region (0-999)
  7685.     CH = last two digits of zipcode (0-99)
  7686.     BX = 16-bit BIOS keycode for a defined ZIPKEY alternate exit key
  7687. Return: CF set on error
  7688.         AX destroyed
  7689.     CF clear if successful
  7690.         zipcode specification as defined by the BX keystroke is placed in
  7691.           keyboard buffer, as if the user had popped up ZIPKEY and exited
  7692.           by pressing the key specified by BX
  7693. --------U-B378-------------------------------
  7694. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN STATE AND CITY
  7695.     AH = 78h
  7696.     BL = ZIPKEY state code
  7697.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  7698. Return: BH = number of matching entries (set to 51 if more than 50)
  7699.     DX = zipcode region of first match (0-999)
  7700.     CL = last two digits of first zipcode in the range (0-99)
  7701.     CH = last two digits of last zipcode in the range (0-99)
  7702.     AX destroyed
  7703. SeeAlso: AH=79h,AH=7Ah
  7704. --------U-B379-------------------------------
  7705. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN CITY
  7706.     AH = 79h
  7707.     BL = ZIPKEY state code of first state to search
  7708.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  7709. Return: AL = ZIPKEY state code of first matching state
  7710.     BH = number of matching entries (set to 51 if more than 50)
  7711.     DX = zipcode region of first match (0-999)
  7712.     CL = last two digits of first zipcode in first range (0-99)
  7713.     CH = last two digits of last zipcode in first range (0-99)
  7714. Note:    to find all matching cities, repeat search with BL set to one more than
  7715.       the returned AL
  7716. SeeAlso: AH=78h,AH=7Ah
  7717. --------U-B37A-------------------------------
  7718. INT B3 - ZIPKEY - FETCH AN ENTRY FROM A PREVIOUS LOOKUP
  7719.     AH = 7Ah
  7720.     BL = case number (0 to one less than value returned in BH by lookup)
  7721. Return: AL = ZIPKEY state code
  7722.     DX = zipcode region (0-999)
  7723.     CL = last two digits of first zipcode in the range (0-99)
  7724.     CH = last two digits of last zipcode in the range (0-99)
  7725. SeeAlso: AH=78h,AH=79h
  7726. --------U-B37B-------------------------------
  7727. INT B3 - ZIPKEY - GET VALUES NEEDED TO SAVE ZIPKEY CONTEXT
  7728.     AH = 7Bh
  7729. Return: BL = maximum number of characters for a city name
  7730.     BH = ZIPKEY state code for last city-name search
  7731.         FFh if none
  7732.     CX:DX = internal code identifying last city search
  7733.     AX destroyed
  7734. SeeAlso: AH=7Ch
  7735. --------U-B37C-------------------------------
  7736. INT B3 - ZIPKEY - RESTORE ZIPKEY CONTEXT
  7737.     AH = 7Ch
  7738.     BL = maximum number of characters for a city name
  7739.     BH = ZIPKEY state code for last city-name search
  7740.         FFh if none
  7741.     CX:DX = internal code returned by AH=7Bh
  7742. Return: CF set on error
  7743.     CF clear if successful
  7744.     AX destroyed
  7745. SeeAlso: AH=7Bh
  7746. --------U-B37D-------------------------------
  7747. INT B3 - ZIPKEY - REQUEST POP UP
  7748.     AH = 7Dh
  7749.     BL = index number to simulate pressing a hotkey
  7750.         FFh for immediate popup with no playback on return
  7751. Return: CF set on error
  7752.         AL = FDh already busy with another request
  7753.            = FEh illegal function
  7754.     CF clear if successful
  7755.         AX destroyed
  7756.         window popped up and was closed by the user
  7757. SeeAlso: AH=70h
  7758. --------U-B37E-------------------------------
  7759. INT B3 - ZIPKEY - GET NAME OF PRIMARY CITY FOR A ZIPCODE REGION
  7760.     AH = 7Eh
  7761.     DX = zipcode region (0-999)
  7762.     ES:DI -> buffer for name
  7763. Return: CF set on error
  7764.         AL = FFh region does not exist
  7765.     CF clear if successful
  7766.         AL = ZIPKEY state code
  7767.         ES:DI points one byte beyond end of name
  7768. SeeAlso: AH=76h
  7769. --------U-B37F-------------------------------
  7770. INT B3 - ZIPKEY - ENABLE/DISABLE HOTKEYS
  7771.     AH = 7Fh
  7772.     BL = function
  7773.         00h turn off hotkeys
  7774.         01h turn on hotkeys
  7775.         02h return hotkey status
  7776.         03h toggle hotkey status
  7777. Return: AL = hotkey status
  7778.         00h off
  7779.         01h on
  7780. --------U-B380-------------------------------
  7781. INT B3 - ZIPKEY v2.0+ - DETERMINE STATE FOR AREA CODE
  7782.     AH = 80h
  7783.     BX = telephone area code (decimal)
  7784. Return: CF clear if successful
  7785.         AL = ZIPKEY state code
  7786.         DX = first ZIP region for state (03E8h if Canada)
  7787.         CX = number of ZIP regions in state
  7788.     CF set on error
  7789.         AL = FFh
  7790.         DX = 03E9h
  7791. --------r-B4---------------------------------
  7792. INT B4 - IBM ROM BASIC - used while in interpreter
  7793. Notes:    called by ROM BASIC
  7794.     BASIC.COM/BASICA.COM do not restore vector on termination
  7795. ----------B4---------------------------------
  7796. INT B4 - StackMan - REQUEST NEW STACK
  7797. Return: SS:SP -> new stack
  7798. Program: StackMan is a freeware stack manager by Franz Veldman of ESaSS B.V.
  7799.       which functions as a replacement for the DOS STACK= command as well
  7800.       as permitting multiple TSRs to share a pool of stack space
  7801. Note:    the installation check consists of testing for the string "STACKXXX" at
  7802.       offset 0Ah from the interrupt handler
  7803. SeeAlso: INT 2F/AX=C9FFh,INT B5"STACKMAN"
  7804. Index:    installation check;STACKMAN
  7805. --------r-B5---------------------------------
  7806. INT B5 - IBM ROM BASIC - used while in interpreter
  7807. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7808.     BASIC.COM/BASICA.COM do not restore vector on termination
  7809. ----------B5---------------------------------
  7810. INT B5 - StackMan - RESTORE ORIGINAL STACK
  7811.     SS:SP -> stack returned by INT B4
  7812. Return: SS:SP restored to value before INT B4
  7813. SeeAlso: INT 2F/AX=C9FFh,INT B4"StackMan"
  7814. ----------B5---------------------------------
  7815. INT B5 U - Netroom NETSWAP4 - ???
  7816.     ???
  7817. Return: ???
  7818. SeeAlso: INT 31/AH=57h
  7819. --------r-B6---------------------------------
  7820. INT B6 - IBM ROM BASIC - used while in interpreter
  7821. Notes:    called by ROM BASIC
  7822.     BASIC.COM/BASICA.COM do not restore vector on termination
  7823. --------r-B7---------------------------------
  7824. INT B7 - IBM ROM BASIC - used while in interpreter
  7825. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7826.     BASIC.COM/BASICA.COM do not restore vector on termination
  7827. --------r-B8---------------------------------
  7828. INT B8 - IBM ROM BASIC - used while in interpreter
  7829. Notes:    called by ROM BASIC
  7830.     BASIC.COM/BASICA.COM do not restore vector on termination
  7831. --------r-B9---------------------------------
  7832. INT B9 - IBM ROM BASIC - used while in interpreter
  7833. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7834.     BASIC.COM/BASICA.COM do not restore vector on termination
  7835. --------r-BA---------------------------------
  7836. INT BA - IBM ROM BASIC - used while in interpreter
  7837. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7838.     BASIC.COM/BASICA.COM do not restore vector on termination
  7839. --------r-BB---------------------------------
  7840. INT BB - IBM ROM BASIC - used while in interpreter
  7841. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7842.     BASIC.COM/BASICA.COM do not restore vector on termination
  7843. --------r-BC---------------------------------
  7844. INT BC - IBM ROM BASIC - used while in interpreter
  7845. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7846.     BASIC.COM/BASICA.COM do not restore vector on termination
  7847. --------r-BD---------------------------------
  7848. INT BD - IBM ROM BASIC - used while in interpreter
  7849. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7850.     BASIC.COM/BASICA.COM do not restore vector on termination
  7851. --------r-BE---------------------------------
  7852. INT BE - IBM ROM BASIC - used while in interpreter
  7853. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7854.     BASIC.COM/BASICA.COM do not restore vector on termination
  7855. --------Q-BE---------------------------------
  7856. INT BE - DESQview/X - ???
  7857. Note:    points at an IRET
  7858. SeeAlso: INT 15/AX=BFDEh/BX=0006h,INT 63"DESQview"
  7859. --------r-BF---------------------------------
  7860. INT BF - IBM ROM BASIC - used while in interpreter
  7861. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7862.     BASIC.COM/BASICA.COM do not restore vector on termination
  7863. --------r-C0---------------------------------
  7864. INT C0 - IBM ROM BASIC - used while in interpreter
  7865. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7866.     BASIC.COM/BASICA.COM do not restore vector on termination
  7867. --------r-C1---------------------------------
  7868. INT C1 - IBM ROM BASIC - used while in interpreter
  7869. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7870.     BASIC.COM/BASICA.COM do not restore vector on termination
  7871. --------r-C2---------------------------------
  7872. INT C2 - IBM ROM BASIC - used while in interpreter
  7873. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7874.     BASIC.COM/BASICA.COM do not restore vector on termination
  7875. --------r-C3---------------------------------
  7876. INT C3 - IBM ROM BASIC - used while in interpreter
  7877. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7878.     BASIC.COM/BASICA.COM do not restore vector on termination
  7879. --------r-C4---------------------------------
  7880. INT C4 - IBM ROM BASIC - used while in interpreter
  7881. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7882.     BASIC.COM/BASICA.COM do not restore vector on termination
  7883. --------r-C5---------------------------------
  7884. INT C5 - IBM ROM BASIC - used while in interpreter
  7885. Notes:    called by ROM BASIC
  7886.     BASIC.COM/BASICA.COM do not restore vector on termination
  7887. --------r-C6---------------------------------
  7888. INT C6 - IBM ROM BASIC - used while in interpreter
  7889. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7890.     BASIC.COM/BASICA.COM do not restore vector on termination
  7891. --------r-C6---------------------------------
  7892. INT C6 - APL*PLUS/PC - IDENTICAL TO INT 86
  7893. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7894.       the older interrupts
  7895. SeeAlso: INT 86"APL"
  7896. --------r-C7---------------------------------
  7897. INT C7 - IBM ROM BASIC - used while in interpreter
  7898. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7899.     BASIC.COM/BASICA.COM do not restore vector on termination
  7900. --------r-C7---------------------------------
  7901. INT C7 - APL*PLUS/PC - ???
  7902. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7903.       the older interrupts
  7904. SeeAlso: INT 87"APL"
  7905. --------r-C8---------------------------------
  7906. INT C8 - IBM ROM BASIC - used while in interpreter
  7907. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7908.     BASIC.COM/BASICA.COM do not restore vector on termination
  7909. --------r-C8---------------------------------
  7910. INT C8 - APL*PLUS/PC - IDENTICAL TO INT 88
  7911. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7912.       the older interrupts
  7913. SeeAlso: INT 88"APL"
  7914. --------r-C9---------------------------------
  7915. INT C9 - IBM ROM BASIC - used while in interpreter
  7916. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7917.     BASIC.COM/BASICA.COM do not restore vector on termination
  7918. --------r-C9---------------------------------
  7919. INT C9 - APL*PLUS/PC - ???
  7920. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7921.       the older interrupts
  7922. SeeAlso: INT 89"APL"
  7923. --------r-CA---------------------------------
  7924. INT CA - IBM ROM BASIC - used while in interpreter
  7925. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7926.     BASIC.COM/BASICA.COM do not restore vector on termination
  7927. --------r-CA---------------------------------
  7928. INT CA - APL*PLUS/PC - PRINT SCREEN
  7929. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7930.       the older interrupts
  7931. SeeAlso: INT 8A"APL"
  7932. --------r-CB---------------------------------
  7933. INT CB - IBM ROM BASIC - used while in interpreter
  7934. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7935.     BASIC.COM/BASICA.COM do not restore vector on termination
  7936. --------r-CB---------------------------------
  7937. INT CB - APL*PLUS/PC - BEEP
  7938. Notes:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7939.       the older interrupts
  7940.     same as printing a ^G via INT 21/AH=02h
  7941. SeeAlso: INT 8B"APL"
  7942. --------r-CC---------------------------------
  7943. INT CC - IBM ROM BASIC - used while in interpreter
  7944. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7945.     BASIC.COM/BASICA.COM do not restore vector on termination
  7946. --------r-CC---------------------------------
  7947. INT CC - APL*PLUS/PC - CLEAR SCREEN MEMORY
  7948.     AX = flag
  7949.         0000h do not save display attributes
  7950.         0001h save attributes
  7951. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7952.       the older interrupts
  7953. SeeAlso: INT 8C"APL"
  7954. --------r-CD---------------------------------
  7955. INT CD - IBM ROM BASIC - used while in interpreter
  7956. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7957.     BASIC.COM/BASICA.COM do not restore vector on termination
  7958. --------r-CD---------------------------------
  7959. INT CD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7960. --------r-CE---------------------------------
  7961. INT CE - IBM ROM BASIC - used while in interpreter
  7962. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7963.     BASIC.COM/BASICA.COM do not restore vector on termination
  7964. --------r-CE---------------------------------
  7965. INT CE - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7966. --------r-CF---------------------------------
  7967. INT CF - IBM ROM BASIC - used while in interpreter
  7968. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7969.     BASIC.COM/BASICA.COM do not restore vector on termination
  7970. --------r-CF---------------------------------
  7971. INT CF - APL*PLUS/PC - DEFAULT LOW-RESOLUTION TIMER FOR QUAD MF FUNCTION
  7972. SeeAlso: INT E0"APL"
  7973. --------r-D0---------------------------------
  7974. INT D0 - IBM ROM BASIC - used while in interpreter
  7975. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7976.     BASIC.COM/BASICA.COM do not restore vector on termination
  7977. --------r-D0---------------------------------
  7978. INT D0 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7979. --------U-D0---------------------------------
  7980. INT D0 - [not a vector!] - NJFRERAM SIGNATURE VECTOR
  7981. Program: NJFRERAM is a resident free-memory display utility by Mike "Nifty
  7982.       James" Blaszczak
  7983. Note:    if NJFRERAM is installed, this vector points at the signature "NJ"
  7984. Index:    installation check;NJFRERAM
  7985. --------r-D1---------------------------------
  7986. INT D1 - IBM ROM BASIC - used while in interpreter
  7987. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7988.     BASIC.COM/BASICA.COM do not restore vector on termination
  7989. --------r-D1---------------------------------
  7990. INT D1 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7991. --------r-D2---------------------------------
  7992. INT D2 - IBM ROM BASIC - used while in interpreter
  7993. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7994.     BASIC.COM/BASICA.COM do not restore vector on termination
  7995. --------r-D2---------------------------------
  7996. INT D2 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7997. --------r-D3---------------------------------
  7998. INT D3 - IBM ROM BASIC - used while in interpreter
  7999. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8000.     BASIC.COM/BASICA.COM do not restore vector on termination
  8001. --------r-D3---------------------------------
  8002. INT D3 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8003. --------r-D4---------------------------------
  8004. INT D4 - IBM ROM BASIC - used while in interpreter
  8005. Notes:    called by ROM BASIC
  8006.     BASIC.COM/BASICA.COM do not restore vector on termination
  8007. --------r-D4---------------------------------
  8008. INT D4 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8009. --------O-D400-------------------------------
  8010. INT D4 O - PC-MOS/386 v5.01 - OBSOLETE FUNCTIONS
  8011.     AH = 00h and 01h
  8012. Return: nothing
  8013. Desc:    PC-MOS/386 v5.01 reports that these functions are no longer supported
  8014.       and enters an endless loop
  8015. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8016.       system by The Software Link, Inc.
  8017. --------O-D402-------------------------------
  8018. INT D4 - PC-MOS/386 v3.0+ - GET SYSTEM CONTROL BLOCK POINTER
  8019.     AH = 02h
  8020. Return: AX = 0000h
  8021.     ES:BX -> System Control Block in V86 mode (see below)
  8022.     ES:EBX -> System Control Block in native mode (see below)
  8023. Note:    superseded by AH=26h
  8024. SeeAlso: AH=04h,AH=10h,AH=26h,AH=28h,AH=29h,AH=2Ah,INT 21/AX=3000h,INT 38
  8025.  
  8026. Format of System Control Block:
  8027. Offset    Size    Description
  8028.  00h    WORD    pointer to first TCB in chain
  8029.  02h 17 BYTEs    reserved
  8030.  13h    WORD    pointer to current task's TCB
  8031.  15h    WORD    pointer to TCB of visible (console) task
  8032. --------O-D403-------------------------------
  8033. INT D4 - PC-MOS/386 v5.01 - GET/SET EXTENDED DIRECTORY INFORMATION
  8034.     AH = 03h
  8035.     AL = subfunction (00h get, 01h set)
  8036.     DS:(E)DX -> pathname
  8037.     ES:(E)BX -> 10-byte buffer for directory information (see below)
  8038. Return: CF clear if successful
  8039.         AL = permitted access level for file (00h-03h)
  8040.         ES:(E)BX -> modified buffer (AL=01h on entry)
  8041.     CF set on error
  8042.         AX = error code (see INT 21/AH=59h)
  8043. Notes:    BX/DX are used in V86 mode, EBX/EDX in native mode
  8044.     the file class cannot be changed for files because it affects the
  8045.       encryption method, but directories can have their classes changed
  8046.  
  8047. Format of directory information:
  8048. Offset    Size    Description
  8049.  00h    BYTE    reserved (0)
  8050.  01h    BYTE    file class ('A'-'Z' or 00h)
  8051.  02h    DWORD    user ID of file creator
  8052.  06h    WORD    file creation time (see INT 21/AX=5700h)
  8053.  08h    WORD    file creation date (see INT 21/AX=5700h)
  8054. --------O-D404-------------------------------
  8055. INT D4 - PC-MOS/386 v3.0+ - GET TASK CONTROL BLOCK
  8056.     AH = 04h
  8057.     BX = task ID or FFFFh for calling task
  8058. Return: CF clear if successful
  8059.         ES = segment of Task Control Block (TCB) (see below)
  8060.     CF set on error
  8061.         AX = error code (see INT 21/AH=59h)
  8062. Note:    superseded by AH=27h
  8063. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah,INT 38
  8064.  
  8065. Format of Task Control Block:
  8066. Offset    Size    Description
  8067.  00h    BYTE    signature byte "H" if allocated from system memory pool
  8068.  01h    BYTE    header block ID, "T" = TCB
  8069.  02h    WORD    length of block in paragraphs
  8070.  04h    WORD    segment address of next header block (0000h if last)
  8071.  06h    WORD    segment address of previous header block (0000h if first)
  8072.  08h    WORD    pointer to next TCB
  8073.  0Ah    WORD    pointer to previous TCB
  8074.  0Ch    WORD    pointer to associated TCB (if applicable)
  8075.  0Eh    WORD    reserved
  8076. ---TCB---
  8077.  10h    WORD    TCB task ID
  8078.  12h    WORD    native context save area
  8079.  14h    WORD    start address of task
  8080.  16h    WORD    end address of task
  8081.  18h    BYTE    task priority
  8082.  19h    BYTE    task time slice
  8083.  1Ah    BYTE    "TCBWAIT" run status of task
  8084.  1Bh    BYTE    "TCBSTAT" what the task is waiting for
  8085.  1Ch    DWORD    address of polling routine
  8086.  20h    BYTE    error code from last function call
  8087.  21h 11 BYTEs    name of currently executing task
  8088.  2Ch  4 BYTEs    ???
  8089.  30h    BYTE    keyboard disabled if bit 1 set
  8090.  31h    BYTE    current shift state and toggles
  8091.  32h  2 BYTEs    ???
  8092.  34h    BYTE    current video mode
  8093.  35h    BYTE    current video page
  8094.  36h    BYTE    number of text columns per screen
  8095.  37h    BYTE    number of text rows per screen
  8096.  38h    WORD    length of video buffer
  8097.  3Ah    WORD    video page length
  8098.  3Ch    WORD    apge start address in video RAM
  8099.  3Eh  4 WORDs    current cursor positions for four screen pages
  8100.  46h  8 BYTEs    ???
  8101.  4Eh    WORD    current cursor type
  8102.  50h    BYTE    current palette setting
  8103.  51h    BYTE    original video mode
  8104.  52h    BYTE    start CRT row (00h or 01h)
  8105.  53h    BYTE    video RAM in task active
  8106.  54h    WORD    handle of video save area
  8107.  56h    WORD    page count of video save area
  8108.  58h    WORD    segment address of video save area
  8109.  5Ah    WORD    poitner to first Task File Block (see below)
  8110.  5Ch    WORD    pointer to first Current Directory Block (see below)
  8111.  5Eh    WORD    pointer to active Current Directory Block (see below)
  8112.  60h    BYTE    number of drives
  8113.  61h    BYTE    current drive (0=A:, etc.)
  8114.  62h    DWORD    disk transfer address
  8115.  66h  4 BYTEs    ???
  8116.  6Ah    BYTE    verify flag (nonzero = on)
  8117.  6Bh    BYTE    break flag (nonzero = on)
  8118.  6Ch    WORD    share/lock retry count
  8119.  6Eh    WORD    ticks between share/lock retries
  8120.  70h    BYTE    remote printer flags (see below)
  8121.  71h    BYTE    ETX/ACK delay count
  8122.  72h    WORD    spooler segment address
  8123.  74h  2 BYTEs    ???
  8124.  76h  3 BYTEs    remote printer redirection for LPT1 through LPT3 (see below)
  8125.  79h  2 BYTEs    ???
  8126.  7Bh    DWORD    offset of username in TCB
  8127.  7Fh    BYTE    current output class
  8128.  80h  7 BYTEs    protection access rights, 2 bits per class (writeable!)
  8129.  87h 122 BYTEs    ???
  8130. 101h    BYTE    TCB sleep downcounter value
  8131. 102h 20 BYTEs    ???
  8132. 116h    BYTE    last scan code
  8133.     ...
  8134. 5D0h    DWORD    far pointer to Device Driver Terminal's entry point
  8135. 5D4h    WORD    offset of logical screen
  8136. 5D6h    WORD    segment of logical screen
  8137. 5D8h    WORD    cursor offset within page
  8138. 5DAh    BYTE    screen columns
  8139. 5DBh    WORD    async port number (0000h = none)
  8140. 5DDh    DWORD    physical baudrate
  8141. 5E1h 19 BYTEs    reserved for Device Driver Terminal (DDT)
  8142.     ...
  8143. 7A6h    DWORD    far pointer to unregister calling chain
  8144.  
  8145. Bitfield for remote printer flags:
  8146.  bit 0    LPT1 to terminal
  8147.  bit 1    LPT2 to terminal
  8148.  bit 2    LPT3 to terminal
  8149.  bit 3    escape to printer pending
  8150.  bit 4    use XON/XOFF
  8151.  bit 5    use ETX/ACK
  8152.  bit 6    waiting for ACK or XON
  8153.  bit 7    transparent printing on
  8154.  
  8155. Values for remote printer redirection:
  8156.  00h    not redirected
  8157.  01h    redirected to COM1
  8158.  ...
  8159.  18h    redirected to COM24
  8160.  51h    redirected to LPT1
  8161.  52h    redirected to LPT2
  8162.  53h    redirected to LPT3
  8163.  
  8164. Format of Task File Block:
  8165. Offset    Size    Description
  8166.  00h    BYTE    signature byte "H" if allocated from system memory pool
  8167.  01h    BYTE    header block ID, "F" = task file block
  8168.  02h    WORD    length of block in paragraphs
  8169.  04h    WORD    segment address of next header block (0000h if last)
  8170.  06h    WORD    segment address of previous header block (0000h if first)
  8171.  08h    WORD    pointer to next TCB
  8172.  0Ah    WORD    pointer to previous TCB
  8173.  0Ch    WORD    pointer to associated TCB (if applicable)
  8174.  0Eh    WORD    reserved
  8175. ---TFB---
  8176.  10h    WORD    segment address of next TFB
  8177.  12h    WORD    segment address of previous TFB
  8178.  14h    WORD    segment address of TFB's Global File Block (see below)
  8179.  16h    WORD    segment address of owner's PSP
  8180.  18h    WORD    file handle
  8181.  1Ah  3 BYTEs    ???
  8182.  1Dh    DWORD    file position
  8183.  21h  4 BYTEs    ???
  8184.  25h    BYTE    IOCTL flags (see below)
  8185.  26h  2 BYTEs    ???
  8186.  
  8187. Bitfields for IOCTL flags:
  8188.  bit 0    stdin
  8189.  bit 1    stdout
  8190.  bit 2    null device
  8191.  bit 3    clock device
  8192.  bit 4    reserved
  8193.  bit 5    ASCII mode instead of binary
  8194.  bit 6    EOF encountered on input
  8195.  bit 7    device rather than file
  8196.  
  8197. Format of Global File Block:
  8198. Offset    Size    Description
  8199.  00h    BYTE    signature byte "H" if allocated from system memory pool
  8200.  01h    BYTE    header block ID, "G" = global file block
  8201.  02h    WORD    length of block in paragraphs
  8202.  04h    WORD    segment address of next header block (0000h if last)
  8203.  06h    WORD    segment address of previous header block (0000h if first)
  8204.  08h    WORD    pointer to next TCB
  8205.  0Ah    WORD    pointer to previous TCB
  8206.  0Ch    WORD    pointer to associated TCB (if applicable)
  8207.  0Eh    WORD    reserved
  8208. ---GFB---
  8209.  10h 10 BYTEs    ???
  8210.  1Ah    WORD    file attribute
  8211.  1Ch    BYTE    ???
  8212.  1Dh    DWORD    address of device driver
  8213.  21h    WORD    first cluster
  8214.  23h    WORD    time of last modification
  8215.  25h    WORD    date of last modification
  8216.  27h    DWORD    size of file in bytes
  8217.  2Bh 11 BYTEs    ???
  8218.  36h 11 BYTEs    device name or FCB-format filename
  8219.  41h    WORD    segment addres off TFB list
  8220.  43h    WORD    segment address of first RLB (see below) (0000h = none)
  8221.  45h    BYTE    flag: nonzero if GFB refers to character device
  8222.  46h    WORD    address of Block Device Block (see below)
  8223.  48h    WORD    sector of file's directory entry
  8224.  4Ah    WORD    high word of file's directory entry
  8225.  4Ch    WORD    ofsset of directory entry within sector
  8226.  
  8227. Format of Current Directory Block:
  8228. Offset    Size    Description
  8229.  00h    BYTE    signature byte "H" if allocated from system memory pool
  8230.  01h    BYTE    header block ID, "C" = current directory block
  8231.  02h    WORD    length of block in paragraphs
  8232.  04h    WORD    segment address of next header block (0000h if last)
  8233.  06h    WORD    segment address of previous header block (0000h if first)
  8234.  08h    WORD    pointer to next TCB
  8235.  0Ah    WORD    pointer to previous TCB
  8236.  0Ch    WORD    pointer to associated TCB (if applicable)
  8237.  0Eh    WORD    reserved
  8238. ---CDB---
  8239.  10h    BYTE    drive number
  8240.  11h    BYTE    ???
  8241.  12h 64 BYTEs    directory name
  8242.  52h    WORD    first directory cluster (0000h = root)
  8243.  
  8244. Format of Block Device Block:
  8245. Offset    Size    Description
  8246.  00h    BYTE    signature byte "H" if allocated from system memory pool
  8247.  01h    BYTE    header block ID, "B" = block device block
  8248.  02h    WORD    length of block in paragraphs
  8249.  04h    WORD    segment address of next header block (0000h if last)
  8250.  06h    WORD    segment address of previous header block (0000h if first)
  8251.  08h    WORD    pointer to next TCB
  8252.  0Ah    WORD    pointer to previous TCB
  8253.  0Ch    WORD    pointer to associated TCB (if applicable)
  8254.  0Eh    WORD    reserved
  8255. ---BDB---
  8256.  10h    BYTE    logical drive
  8257.  11h    BYTE    unit passed to driver
  8258.  12h    WORD    sector size
  8259.  14h    BYTE    cluster mask
  8260.  15h    BYTE    cluster shift count
  8261.  16h    WORD    starting sector of first FAT
  8262.  18h    BYTE    number of FATs
  8263.  19h    WORD    number of root directories
  8264.  1Bh    WORD    sector number of first data sector (cluster 0002h)
  8265.  1Dh    WORD    number of clusters + 1 (number of highest data cluster)
  8266.  1Fh    BYTE    number of sectors in FAT
  8267.  20h    WORD    beginning root directory sector number
  8268.  22h    DWORD    device driver address
  8269.  26h    BYTE    media descriptor byte
  8270.  27h  5 BYTEs    ???
  8271.  2Ch    BYTE    flag: volume > 32MB
  8272.  2Dh    BYTE    ???
  8273.  2Eh    BYTE    number of sectors per cluster
  8274.  2Fh    WORD    number of clusters on device
  8275.  31h    WORD    number of free clusters (FFFFh = unknown)
  8276.  33h    WORD    root directory cluster number
  8277.  35h    WORD    pointer to alias/subst string
  8278.  37h    WORD    TCB segment address of owner (0000h = none)
  8279.  
  8280.  
  8281. Format of Record Lock Block:
  8282. Offset    Size    Description
  8283.  00h    BYTE    signature byte "H" if allocated from system memory pool
  8284.  01h    BYTE    header block ID, "R" = record lock block
  8285.  02h    WORD    length of block in paragraphs
  8286.  04h    WORD    segment address of next header block (0000h if last)
  8287.  06h    WORD    segment address of previous header block (0000h if first)
  8288.  08h    WORD    pointer to next TCB
  8289.  0Ah    WORD    pointer to previous TCB
  8290.  0Ch    WORD    pointer to associated TCB (if applicable)
  8291.  0Eh    WORD    reserved
  8292. ---RLB---
  8293.  10h    WORD    segment address of owner's PSP
  8294.  12h    WORD    segment address of Global File Block (see above)
  8295.  14h    WORD    segment address of owner's Task File Block (see above)
  8296.  16h    DWORD    file offset of locked region start
  8297.  1Ah    DWORD    length of locked region
  8298.  1Eh    WORD    owner's handle for file
  8299. --------O-D407-------------------------------
  8300. INT D4 - PC-MOS/386 v3.0+ - WAIT FOR EVENT
  8301.     AH = 07h
  8302.     AL = events to monitor (see below)
  8303.     BX = number of timer ticks until timeout if AL bit 1 set
  8304.     CX = bitmap of IRQs to monitor if AL bit 2 set
  8305.         (bit 0 = IRQ0 .. bit 15 = IRQ15)
  8306.     DX = port to monitor if AL bit 3 set
  8307. Return: CF clear if successful
  8308.         AL = type of event which woke up task (see above)
  8309.         CX = IRQ (if any) which awakened task
  8310.         DX = port (if any) which awakened task
  8311.     CF set on error
  8312.         AX = error code (see INT 21/AH=59h)
  8313. Note:    a device driver may make this call with AL=00h, which indicates that
  8314.       the driver is responsible for setting and clearing the TCBWAIT field
  8315.       in the TCB.  To put task to sleep, set TCBWAIT bits 2-0 to 001; to
  8316.       reawaken it, set bit 1 (leaving other bits unchanged)
  8317. SeeAlso: AH=04h,INT 16/AH=00h,INT 38
  8318.  
  8319. Bitfields for events to monitor:
  8320.  bit 0    keystroke
  8321.  bit 1    timeout
  8322.  bit 2    IRQ
  8323.  bit 3    port access
  8324.  bit 7    return status of user poll routine (other bits ignored if set)
  8325. --------O-D410-------------------------------
  8326. INT D4 - PC-MOS/386 v3.0+ - ENTER/LEAVE NATIVE 386 EXECUTION MODE
  8327.     AH = 10h
  8328.     AL = direction (00h return to V86 mode, 01h enter native mode)
  8329.     CX = length in bytes of Native Context Area ( >=1024 )
  8330.     DX = segment of Native Context Area
  8331. Return: CF clear if successful
  8332.         running in desired mode at instruction following INT D4 call
  8333.         all segment registers converted to appropriate selectors/segments
  8334.     CF set on error
  8335.         AX = error code (see INT 21/AH=59h)
  8336. Note:    MS-DOS calls are available in protected mode
  8337. SeeAlso: AH=11h,AH=12h,AH=13h,INT 2F/AX=1687h,INT 67/AX=DE0Ch,INT 38
  8338. --------O-D411-------------------------------
  8339. INT D4 - PC-MOS/386 v3.0+ - ALLOCATE NATIVE MODE MEMORY BLOCK
  8340.     AH = 11h
  8341.     EBX = block length in bytes
  8342. Return: CF clear if successful
  8343.         EBX = number of bytes actually allocated
  8344.         ES = selector for allocated block
  8345.     CF set on error
  8346.         AX = error code (see INT 21/AH=59h)
  8347. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8348.       system by The Software Link, Inc.
  8349. Note:    memory must be released before program terminates
  8350. SeeAlso: AH=10h,AH=12h,INT 38
  8351. --------O-D412-------------------------------
  8352. INT D4 - PC-MOS/386 v3.0+ - FREE NATIVE MODE MEMORY BLOCK
  8353.     AH = 12h
  8354.     ES = selector for block to free
  8355. Return: CF clear if successful
  8356.     CF set on error
  8357.         AX = error code (see INT 21/AH=59h)
  8358. SeeAlso: AH=10h,AH=11h,AH=13h,INT 38
  8359. --------O-D413-------------------------------
  8360. INT D4 - PC-MOS/386 v5.01 - GET ALIAS FOR SELECTOR (NATIVE MODE ONLY)
  8361.     AH = 13h
  8362.     AL = type of alias selector (00h data, 01h stack, 02h code)
  8363.     BX = selector
  8364. Return: CF clear if successful
  8365.         AX = new selector or 0000h if BX selector not found
  8366.     CF set on error
  8367.         AX = error code (see INT 21/AH=59h)
  8368. SeeAlso: AH=11h,AH=12h
  8369. --------O-D416-------------------------------
  8370. INT D4 - PC-MOS/386 v5.01 - SET/CLEAR IRQ RESERVATION
  8371.     AH = 16h
  8372.     AL = function (00h clear, 01h set reservation)
  8373.     CX = IRQ number
  8374. Return: AX = status
  8375.         (0000h successful, 0001h currently reserved by another task)
  8376. SeeAlso: AH=07h,INT 14/AH=11h"PC-MOS"
  8377. --------O-D419-------------------------------
  8378. INT D4 - PC-MOS/386 v5.01 - GET TASK ID
  8379.     AH = 19h
  8380. Return: BX = caller's task ID
  8381. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8382.       system by The Software Link, Inc.
  8383. SeeAlso: AH=1Dh,AH=1Eh
  8384. --------O-D41A-------------------------------
  8385. INT D4 - PC-MOS/386 v5.01 - GET/SET TASK PRIORITY
  8386.     AH = 1Ah
  8387.     AL = subfunction (00h read, 01h set, 02h get and set)
  8388.     BX = task ID (FFFFh for current task)
  8389.     CL = new priority value
  8390. Return: CF clear if successful
  8391.         CL = current priority value
  8392.     CF set on error
  8393.         AX = error code (see INT 21/AH=59h)
  8394. SeeAlso: AH=1Bh,AH=1Ch
  8395. --------O-D41B-------------------------------
  8396. INT D4 - PC-MOS/386 v5.01 - GET/SET TIME SLICE
  8397.     AH = 1Bh
  8398.     AL = subfunction (00h read, 01h set, 02h get and set)
  8399.     BX = task ID (FFFFh for current task) (see AH=19h)
  8400.     CL = new time slice value
  8401. Return: CF clear if successful
  8402.         CL = current time slice value
  8403.     CF set on error
  8404.         AX = error code (see INT 21/AH=59h)
  8405. SeeAlso: AH=1Ah,AH=1Ch
  8406. --------O-D41C-------------------------------
  8407. INT D4 - PC-MOS/386 v5.01 - GET/SET KEYBOARD MODE
  8408.     AH = 1Ch
  8409.     AL = subfunction (00h enable, 01h disable, 02h get mode)
  8410.     BX = task ID (FFFFh for current task)
  8411. Return: CF clear if successful
  8412.         CL = current keyboard state
  8413.     CF set on error
  8414.         AX = error code (INT 21/AH=59h)
  8415. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8416.       system by The Software Link, Inc.
  8417. SeeAlso: AH=1Ah,AH=1Bh
  8418. --------O-D41D-------------------------------
  8419. INT D4 - PC-MOS/386 v5.01 - GET CURRENT PROGRAM NAME
  8420.     AH = 1Dh
  8421.     BX = task ID (FFFFh for current task) (see AH=19h)
  8422.     ES:DI -> buffer for program name (see below)
  8423. Return: CF clear if successful
  8424.         ES:DI buffer filled
  8425.     CF set on error
  8426.         AX = error code (see INT 21/AH=59h)
  8427. SeeAlso: AH=19h,AH=1Eh
  8428.  
  8429. Format of buffer:
  8430. Offset    Size    Description
  8431.  00h  8 BYTEs    filename
  8432.  08h  3 BYTEs    extension
  8433. --------O-D41E-------------------------------
  8434. INT D4 - PC-MOS/386 v5.01 - GET CURRENT USERNAME AND SECURITY CLASS
  8435.     AH = 1Eh
  8436.     BX = task ID (FFFFh for current task)
  8437.     ES:DI -> 4-byte buffer for username
  8438. Return: CF clear if successful
  8439.         CL = security class
  8440.         20h (' ') none
  8441.         41h-5Ah ('A'-'Z') security level
  8442.         ES:DI buffer filled
  8443.     CF set on error
  8444.         AX = error code (see INT 21/AH=59h)
  8445. SeeAlso: AH=19h,AH=1Dh
  8446. --------O-D41F-------------------------------
  8447. INT D4 - PC-MOS/386 v5.01 - GET TASK PARTITION INFORMATION
  8448.     AH = 1Fh
  8449.     BX = task ID (FFFFh for current task) (see AH=19h)
  8450. Return: CF clear if successful
  8451.         CX = start segment of task
  8452.         DX = ending segment of task
  8453.     CF set on error
  8454.         AX = error code (see INT 21/AH=59h)
  8455. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8456.       system by The Software Link, Inc.
  8457. SeeAlso: AH=2Dh
  8458. --------O-D420-------------------------------
  8459. INT D4 - PC-MOS/386 v5.01 - GET PORT AND BAUDRATE INFORMATION
  8460.     AH = 20h
  8461.     BX = task ID (FFFFh for current task) (see AH=19h)
  8462. Return: CF clear if successful
  8463.         CX = port number (0000h if none)
  8464.         DI:SI = baudrate (if CX nonzero)
  8465.     CF set on error
  8466.         AX = error code (see INT 21/AH=59h)
  8467. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8468.       system by The Software Link, Inc.
  8469. SeeAlso: INT 14/AH=0Ch"FOSSIL"
  8470. --------O-D421-------------------------------
  8471. INT D4 - PC-MOS/386 v5.01 - REMOVE A TASK
  8472.     AH = 21h
  8473.     BX = task ID (FFFFh for current task) (see AH=19h)
  8474. Return: CF clear if successful
  8475.         AX = ASCII percentage of System Memory Pool used
  8476.         (AH = tens digit, AL = ones digit)
  8477.         DS,SI destroyed
  8478.     CF set on error
  8479.         AX = error code (see INT 21/AH=59h)
  8480. SeeAlso: AH=22h
  8481. --------O-D422-------------------------------
  8482. INT D4 - PC-MOS/386 v5.01 - ADD A TASK TO THE SYSTEM
  8483.     AH = 22h
  8484.     DS:SI -> addtask data structure (see below)
  8485. Return: CF clear if successful
  8486.         ES = segment address of the new task's TCB data structure
  8487.     CF set on error
  8488.         AX = error code (see below)
  8489. SeeAlso: AH=21h
  8490.  
  8491. Values for error code:
  8492.  08h    insufficient memory
  8493.  0Bh    invalid addtask structure format
  8494.  12h    insufficient available space in system memory pool
  8495.  1Fh    general failure
  8496.  55h    already allocated
  8497.  57h    if task already in use or invalid parameter
  8498.  
  8499. Format of addtask data structure:
  8500. Offset    Size    Description
  8501.  00h    WORD    task size in KB (min 16KB)
  8502.  02h    WORD    task ID (0000h for automatic selection)
  8503.  04h    BYTE    task class (' ' or 'A'-'Z')
  8504.  05h    DWORD    -> ASCIZ name of task startup batchfile
  8505.  09h    DWORD    -> task's terminal driver (0000000h = background task)
  8506.  0Dh    WORD    task port
  8507.  0Fh    DWORD    task baud rate
  8508.  13h    DWORD    (return) total extended memory
  8509.  17h    DWORD    (return) number of 4K extended memory pages allocated
  8510.  1Bh    WORD    (return) paragraphs of system memory pool allocated
  8511.  1Dh    WORD    (return) system memory pool size in paragraphs
  8512.  1Fh    WORD    (return) ASCII task percentage of system memory pool
  8513.  21h  3 BYTEs    reserved
  8514. --------O-D423-------------------------------
  8515. INT D4 - PC-MOS/386 v5.01 - CHANGE TERMINAL DRIVER
  8516.     AH = 23h
  8517.     BX = task ID (FFFFh for current task)
  8518.     DS:SI -> entry point of the new Device Driver Terminal
  8519. Return: CF clear if successful
  8520.     CF set on error
  8521.         AX = error code (see INT 21/AH=59h)
  8522. --------O-D424-------------------------------
  8523. INT D4 U - PC-MOS/386 v5.01 - GET OPERATING SYSTEM SERIAL NUMBER
  8524.     AH = 24h
  8525. Return: DS:DX -> '$'-terminated string containing the serial number
  8526. --------O-D425-------------------------------
  8527. INT D4 - PC-MOS/386 v5.01 - IDENTIFY LOAD ADDRESS OF DEVICE DRIVER LOCATION
  8528.     AH = 25h
  8529.     DX = driver's CS value
  8530. Return: AX = segment address of driver in system memory pool
  8531.         (0000h if the driver is not within the system memory pool)
  8532. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8533.       system by The Software Link, Inc.
  8534. --------O-D426-------------------------------
  8535. INT D4 - PC-MOS/386 v5.01 - GET SYSTEM CONTROL BLOCK SEGMENT/SELECTOR
  8536.     AH = 26h
  8537. Return: DX = segment/selector of the System Control Block (see AH=02h)
  8538. Note:    this function supersedes AH=02h
  8539. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah
  8540. --------O-D427-------------------------------
  8541. INT D4 - PC-MOS/386 v5.01 - GET TASK CONTROL BLOCK SEGMENT/SELECTOR
  8542.     AH = 27h
  8543.     BX = task ID (FFFFh if current task) (see AH=19h)
  8544. Return: CF clear if successful
  8545.         DX = segment/selector for the Task Control Block (see AH=04h)
  8546.     CF set on error
  8547.         AX = error code (INT 21/AH=59h)
  8548. Note:    this function supersedes AH=04h
  8549. SeeAlso: AH=26h,AH=28h,AH=29h,AH=2Ah
  8550. --------O-D428-------------------------------
  8551. INT D4 - PC-MOS/386 v5.01 - GET CONTROL BLOCK DATA FROM SCB OR TCB
  8552.     AH = 28h
  8553.     BX = offset into control block at which to start reading
  8554.     CX = number of bytes to read
  8555.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  8556.     ES:DI -> buffer for data
  8557. Return: CF clear if successful
  8558.     CF set on error
  8559.         AX = error code (see also INT 21/AH=59h)
  8560.         05h access denied due to an invalid segment/selector
  8561. SeeAlso: AH=26h,AH=27h,AH=29h,AH=2Ah
  8562. --------O-D429-------------------------------
  8563. INT D4 - PC-MOS/386 v5.01 - WRITE CONTROL BLOCK DATA INTO SCB OR TCB
  8564.     AH = 29h
  8565.     BX = offset into control block at which to start writing
  8566.     CX = number of bytes to write
  8567.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  8568.     DS:SI -> buffer containing data to be written
  8569. Return: CF clear if successful
  8570.     CF set on errro
  8571.         AX = error code (see also INT 21/AH=59h)
  8572.         05h access denied due to an invalid segment/selector
  8573. Note:     this function performs no bounds checking
  8574. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8575.       system by The Software Link, Inc.
  8576. SeeAlso: AH=26h,AH=27h,AH=28h,AH=2Ah
  8577. --------O-D42A-------------------------------
  8578. INT D4 - PC-MOS/386 v5.01 - SWAP CONTROL BLOCK DATA OF SCB OR TCB
  8579.     AH = 2Ah
  8580.     BX = offset into control block at which to start swap
  8581.     CX = number of bytes to swap
  8582.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  8583.     DS:SI -> buffer containing new data and to receive current data
  8584. Return: CF clear if successful
  8585.     CF set on error
  8586.         AX = error code (see also INT 21/AH=59h)
  8587.         05h access denied due to an invalid segment/selector
  8588. Note:    the interrupts are disabled during the swap to prevent corruption
  8589. SeeAlso: AH=26h,AH=27h,AH=28h,AH=29h
  8590. --------O-D42C-------------------------------
  8591. INT D4 - PC-MOS/386 v5.01 - GET/SET SPOOLER PARAMETERS
  8592.     AH = 2Ch
  8593.     AL = function
  8594.         00h set spooler timeout
  8595.         CX = timout value in seconds
  8596.         01h get spooler timeout
  8597.         Return: CX = current timeout in seconds
  8598.         02h get spooler parameters
  8599.         Return: CH = priority (00h-09h)
  8600.             CL = disposition (d, h, i, n, s)
  8601.             SI = class (a - z)
  8602.         03h set spooler parameters
  8603.         CH = priority (00h-09h)
  8604.         CL = disposition (d, h, i, n, s)
  8605.         SI = class (a - z)
  8606.         BX = task ID (FFFFh for current task)
  8607.         DX = LPT number
  8608. Return: CF clear if successful
  8609.     CF set on error
  8610.         AX = error code (see INT 21/AH=59h)
  8611. SeeAlso: AH=00h,AH=02h,AH=03h
  8612. --------O-D42D-------------------------------
  8613. INT D4 - PC-MOS/386 v5.01 - GET MAXIMUM TASK SIZE
  8614.     AH = 2Dh
  8615. Return: DX = maximum task size in paragraphs
  8616.     BX = start address of task space
  8617. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8618.       system by The Software Link, Inc.
  8619. SeeAlso: AH=1Fh,AH=22h
  8620. --------r-D5---------------------------------
  8621. INT D5 - IBM ROM BASIC - used while in interpreter
  8622. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8623.     BASIC.COM/BASICA.COM do not restore vector on termination
  8624. --------r-D5---------------------------------
  8625. INT D5 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8626. --------r-D6---------------------------------
  8627. INT D6 - IBM ROM BASIC - used while in interpreter
  8628. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8629.     BASIC.COM/BASICA.COM do not restore vector on termination
  8630. --------r-D6---------------------------------
  8631. INT D6 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8632. --------r-D7---------------------------------
  8633. INT D7 - IBM ROM BASIC - used while in interpreter
  8634. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8635.     BASIC.COM/BASICA.COM do not restore vector on termination
  8636. --------r-D7---------------------------------
  8637. INT D7 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8638. --------r-D8---------------------------------
  8639. INT D8 - IBM ROM BASIC - used while in interpreter
  8640. Notes:    called by ROM BASIC
  8641.     BASIC.COM/BASICA.COM do not restore vector on termination
  8642. --------r-D8---------------------------------
  8643. INT D8 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8644. --------H-D8---------------------------------
  8645. INT D8 - Screen Thief v1.00 - RELOCATED IRQ0
  8646. Note:    Screen Thief relocates IRQs 0 through 7 to INT D8 to INT DF by default,
  8647.       but may be directed via a commandline switch to use any range
  8648.       starting at a multiple of 8 between 78h and E0h
  8649. SeeAlso: INT 08"IRQ0",INT 2D/AL=10h"Screen Thief",INT 50"DESQview"
  8650. SeeAlso: INT D9"Screen Thief"
  8651. --------r-D9---------------------------------
  8652. INT D9 - IBM ROM BASIC - used while in interpreter
  8653. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8654.     BASIC.COM/BASICA.COM do not restore vector on termination
  8655. --------r-D9---------------------------------
  8656. INT D9 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8657. --------H-D9---------------------------------
  8658. INT D9 - Screen Thief v1.00 - RELOCATED IRQ1
  8659. Note:    (see INT D8"Screen Thief")
  8660. SeeAlso: INT 09"IRQ1",INT D8"Screen Thief",INT DA"Screen Thief"
  8661. --------r-DA---------------------------------
  8662. INT DA - IBM ROM BASIC - used while in interpreter
  8663. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8664.     BASIC.COM/BASICA.COM do not restore vector on termination
  8665. --------r-DA---------------------------------
  8666. INT DA - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8667. --------H-DA---------------------------------
  8668. INT DA - Screen Thief v1.00 - RELOCATED IRQ2
  8669. Note:    (see INT D8"Screen Thief")
  8670. SeeAlso: INT 0A"IRQ2",INT D9"Screen Thief",INT DB"Screen Thief"
  8671. --------r-DB---------------------------------
  8672. INT DB - IBM ROM BASIC - used while in interpreter
  8673. Notes:    called by ROM BASIC
  8674.     BASIC.COM/BASICA.COM do not restore vector on termination
  8675. --------r-DB---------------------------------
  8676. INT DB - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8677. --------H-DB---------------------------------
  8678. INT DB - Screen Thief v1.00 - RELOCATED IRQ3
  8679. Note:    (see INT D8"Screen Thief")
  8680. SeeAlso: INT 0B"IRQ3",INT DA"Screen Thief",INT DC"Screen Thief"
  8681. --------u-DC---------------------------------
  8682. INT DC - PC/370 v4.1- - API
  8683. SeeAlso: INT 60"PC/370"
  8684. --------r-DC---------------------------------
  8685. INT DC - IBM ROM BASIC - used while in interpreter
  8686. Notes:    called by ROM BASIC
  8687.     BASIC.COM/BASICA.COM do not restore vector on termination
  8688. --------r-DC---------------------------------
  8689. INT DC - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8690. --------H-DC---------------------------------
  8691. INT DC - Screen Thief v1.00 - RELOCATED IRQ4
  8692. Note:    (see INT D8"Screen Thief")
  8693. SeeAlso: INT 0C"IRQ4",INT DB"Screen Thief",INT DD"Screen Thief"
  8694. --------r-DD---------------------------------
  8695. INT DD - IBM ROM BASIC - used while in interpreter
  8696. Notes:    called by ROM BASIC
  8697.     BASIC.COM/BASICA.COM do not restore vector on termination
  8698. --------r-DD---------------------------------
  8699. INT DD - STSC APL*PLUS/PC v9.0 - PLACE KEYSTROKE EVENTS IN INPUT BUFFER
  8700.     BX = where to place keystrokes
  8701.         FFFFh insert before current buffer contents
  8702.         0000h replace current contents
  8703.         0001h insert after current contents
  8704.     CX = number of keystroke events to insert
  8705.     ES:SI -> data to be placed into buffer (list of WORD key codes)
  8706.         4000h + N = normal ASCII keystroke N (N = 00h to FFh)
  8707.         4100h + N = extended ASCII keystroke N (N = 03h to 84h)
  8708. SeeAlso: INT 16/AH=05h
  8709. --------H-DD---------------------------------
  8710. INT DD - Screen Thief v1.00 - RELOCATED IRQ5
  8711. Note:    (see INT D8"Screen Thief")
  8712. SeeAlso: INT 0D"IRQ5",INT DC"Screen Thief",INT DE"Screen Thief"
  8713. --------r-DE---------------------------------
  8714. INT DE - IBM ROM BASIC - used while in interpreter
  8715. Notes:    called by ROM BASIC
  8716.     BASIC.COM/BASICA.COM do not restore vector on termination
  8717. --------r-DE---------------------------------
  8718. INT DE - APL*PLUS/PC - ???
  8719. Note:    appears to be the same as INT 16
  8720. --------H-DE---------------------------------
  8721. INT DE - Screen Thief v1.00 - RELOCATED IRQ6
  8722. Note:    (see INT D8"Screen Thief")
  8723. SeeAlso: INT 0E"IRQ6",INT DD"Screen Thief",INT DF"Screen Thief"
  8724. --------b-DF---------------------------------
  8725. INT DF - Victor 9000 - SuperBIOS
  8726. --------r-DF---------------------------------
  8727. INT DF - IBM ROM BASIC - used while in interpreter
  8728. Notes:    called by ROM BASIC
  8729.     BASIC.COM/BASICA.COM do not restore vector on termination
  8730. --------r-DF---------------------------------
  8731. INT DF - APL*PLUS/PC - SAME AS INT 10
  8732. SeeAlso: INT 10
  8733. --------H-DF---------------------------------
  8734. INT DF - Screen Thief v1.00 - RELOCATED IRQ7
  8735. Note:    (see INT D8"Screen Thief")
  8736. SeeAlso: INT 0F"IRQ7",INT DE"Screen Thief"
  8737. --------r-E0---------------------------------
  8738. INT E0 - IBM ROM BASIC - used while in interpreter
  8739. Notes:    called by ROM BASIC
  8740.     BASIC.COM/BASICA.COM do not restore vector on termination
  8741. --------r-E0---------------------------------
  8742. INT E0 - APL*PLUS/PC - RESTIME HIGH-RESOLUTION TIMER FOR QUAD MF FUNCTION
  8743. SeeAlso: INT CF"APL"
  8744. --------v-E0---------------------------------
  8745. INT E0 - VIRUS - "Micro-128" - ???
  8746. Note:    Micro-128 also overwrites the upper half of the interrupt table
  8747. SeeAlso: INT 9E"VIRUS",INT F1"VIRUS"
  8748. --------O-E0---------------------------------
  8749. INT E0 - CP/M-86, Concurrent CP/M, DR Multiuser DOS - FUNCTION CALLS
  8750.     CL = function number
  8751.     DS,DX = parameters
  8752. Return: as appropriate for function
  8753. Notes:    several functions are covered in more detail in following entries
  8754.     most of these calls are also supported by Digital Research's DOS Plus
  8755.       v2.1; the unsupported functions are 26h,29h-2Bh,3Ah,3Dh-62h,71h-8Ch,
  8756.       90h-92h,94h-97h,9Bh-ABh, and AEh-FFh
  8757. SeeAlso: INT 21/AX=4459h,INT 21/AH=E0h"DOS Plus"
  8758.  
  8759. Values for function number:
  8760.  00h    terminate calling process (see also INT 21/AH=00h)
  8761.  01h    read a character
  8762.  02h    write character to default console (see also INT 21/AH=02h)
  8763.  03h    read character from default AUX (see also INT 21/AH=03h)
  8764.  04h    write character to default AUX (see also INT 21/AH=04h)
  8765.  05h    write character to default list device (see also INT 21/AH=05h)
  8766.  06h    perform raw I/O on default console (see also INT 21/AH=06h)
  8767.  07h    return default AUX input status
  8768.  08h    return default AUX output status
  8769.  09h    write string to default console (see also INT 21/AH=09h)
  8770.  0Ah    read string from default console (see also INT 21/AH=0Ah)
  8771.  0Bh    return default console input status (see also INT 21/AH=0Bh)
  8772.  0Ch    get BDOS release ID
  8773.  0Dh    reset all disk drives (see also INT 21/AH=0Dh)
  8774.  0Eh    set default drive (see also INT 21/AH=0Eh)
  8775.  0Fh    open file via FCB (see also INT 21/AH=0Fh)
  8776.  10h    close file via FCB (see also INT 21/AH=10h)
  8777.  11h    search for first matching file with FCB (see also INT 21/AH=11h)
  8778.  12h    search for next matching file with FCB (see also INT 21/AH=12h)
  8779.  13h    delete file via FCB (see also INT 21/AH=13h)
  8780.  14h    sequential read via FCB (see also INT 21/AH=14h)
  8781.  15h    sequential write via FCB (see also INT 21/AH=15h)
  8782.  16h    create file via FCB (see also INT 21/AH=16h)
  8783.  17h    rename file via FCB (see also INT 21/AH=17h)
  8784.  18h    get bit map of logged drives
  8785.  19h    get default drive (see also INT 21/AH=19h)
  8786.  1Ah    set DMA address offset
  8787.  1Bh    get default disk allocation vector (see also INT 21/AH=1Bh)
  8788.  1Ch    set default drive to read-only
  8789.  1Dh    get bit map of read-only drives
  8790.  1Eh    set file attributes via FCB (see also INT 21/AX=4301h)
  8791.  1Fh    get address of disk parameter block (see also INT 21/AH=1Fh)
  8792.  20h    get/set default user number
  8793.  21h    read random record via FCB (see also INT 21/AH=21h)
  8794.  22h    write random record via FCB (see also INT 21/AH=22h)
  8795.  23h    compute file size with FCB (see also INT 21/AH=23h)
  8796.  24h    get FCB random record number (see also INT 21/AH=24h)
  8797.  25h    reset specified drives
  8798.  26h    access specified drives (not in DR DOS Plus v2.1)
  8799.  27h    free specified drives
  8800.  28h    write random with FCB, zero fill (see also also INT 21/AH=28h)
  8801.  2Ah    lock records in FCB file (see also INT 21/AH=5Ch)
  8802.  2Bh    unlock records in FCB file (see also INT 21/AH=5Ch)
  8803.  2Ch    set BDOS multisector count
  8804.  2Dh    set BDOS error mode
  8805.  2Eh    get free space on disk
  8806.  2Fh    load, initialize, and jump to process (see also INT 21/AH=4Bh)
  8807.  30h    flush write-deferred buffers
  8808.  31h    get/set system variable (DOS Plus v2.1)
  8809.  32h    call BIOS (XIOS) character routine (see below)
  8810.  33h    set DMA address segment
  8811.  34h    get DMA buffer address
  8812.  35h    CP/M-86 allocate maximum memory
  8813.  36h    allocate maximum memory at specified segment
  8814.  37h    CP/M-86 allocate memory segment (see also INT 21/AH=48h)
  8815.  38h    allocate memory at specified segment
  8816.  39h    CP/M-86 free specified memory segment (see also INT 21/AH=49h)
  8817.  3Ah    CP/M-86 free all memory (not in DOS Plus v2.1)
  8818.  3Bh    load .CMD file into memory
  8819.  3Ch    (DOS Plus v2.1) call RSX program
  8820.  40h    (DR-NET) log on a server
  8821.  41h    (DR-NET) log off a server
  8822.  42h    (DR-NET) send a message
  8823.  43h    (DR-NET) receive a message
  8824.  44h    (DR-NET) get network status
  8825.  45h    (DR-NET) get requestor configuration table
  8826.  46h    (DR-NET) set compatibility attributes
  8827.  47h    (DR-NET) get server configuration table
  8828.  48h    (DR-NET) set network error mode
  8829.  49h    (DR-NET) attach network
  8830.  4Ah    (DR-NET) detach network
  8831.  4Bh    (DR-NET) set default password
  8832.  4Ch    (DR-NET) get-set long timeout
  8833.  4Dh    (DR-NET) get parameter table
  8834.  50h    (DR-NET) get network information
  8835.  53h    get current time (see also INT 21/AH=2Ch)
  8836.  54h    set current time (see also INT 21/AH=2Dh)
  8837.  55h    get binary system date (see also INT 21/AH=2Ah)
  8838.  56h    set system date (see also INT 21/AH=2Bh)
  8839.  57h    allocate system flag
  8840.  58h    deallocate system flag
  8841.  59h    reserve memory in global area
  8842.  5Ah    lock physical drive
  8843.  5Bh    unlock physical drive
  8844.  5Ch    search path for executable file
  8845.  5Dh    load and execute command (see also INT 21/AH=4Bh)
  8846.  5Eh    get/set process exit code
  8847.  5Fh    set country information
  8848.  60h    get country information
  8849.  63h    truncate FCB file (see also INT 21/AH=28h)
  8850.  64h    create/update directory label
  8851.  65h    get directory label
  8852.  66h    get FCB date stamp and password mode
  8853.  67h    write extended FCB
  8854.  68h    set system date and time
  8855.  69h    get system date and time in binary
  8856.  6Ah    establish password for file access
  8857.  6Bh    get OS serial number
  8858.  6Ch    (DOS Plus v2.1) get/set program return code
  8859.  6Dh    get/set console mode
  8860.  6Eh    get/set string delimiter
  8861.  6Fh    write block to default console
  8862.  70h    write block to default list device
  8863.  71h    execute DOS-compatible function
  8864.  74h    set FCB time and date stamps
  8865.  80h    allocate memory
  8866.  82h    deallocate memory
  8867.  83h    poll I/O device
  8868.  84h    wait on system flag
  8869.  85h    set system flag
  8870.  86h    create message queue
  8871.  87h    open message queue
  8872.  88h    delete message queue
  8873.  89h    read from message queue
  8874.  8Ah    conditionally read from message queue
  8875.  8Bh    write to message queue
  8876.  8Ch    conditionally write to message queue
  8877.  8Dh    delay calling process
  8878.  8Eh    call process dispatcher (yield CPU)
  8879.  8Fh    terminate calling process (same as function 00h)
  8880.  90h    create a process
  8881.  91h    set calling process' priority
  8882.  92h    attach to default console
  8883.  93h    detach from default console
  8884.  95h    assign default console to process
  8885.  96h    interpret and execute commandline
  8886.  97h    resident procedure library
  8887.  98h    parse ASCII string into FCB (see also INT 21/AH=29h)
  8888.  99h    return default console
  8889.  9Ah    get address of system data (SYSDAT)
  8890.  9Bh    get system time and date
  8891.  9Ch    return calling process' descriptor
  8892.  9Dh    terminate process by name or PD address
  8893.  9Eh    attach to default list device
  8894.  9Fh    detach from default list device
  8895.  A0h    select default list device
  8896.  A1h    conditionally attach to default list device
  8897.  A2h    conditionally attach to default console
  8898.  A3h    get OS version number
  8899.  A4h    get default list device
  8900.  A5h    attach to default AUX
  8901.  A6h    detach from default AUX
  8902.  A7h    conditionally attach to default AUX
  8903.  A8h    set default AUX
  8904.  A9h    return default AUX
  8905.  ACh    read block from default AUX
  8906.  ADh    (DOS Plus v2.1) write block to default AUX
  8907.  B0h    configure default AUX
  8908.  B1h    get/set device control parameters
  8909.  B2h    send Break through default AUX
  8910.  B3h    allocate physical memory
  8911.  B4h    free physical memory
  8912.  B5h    map physical memory
  8913.  B6h    nondestructive message queue read
  8914.  B7h    timed wait on system flag
  8915.  B8h    get/set I/O port mapping
  8916.  B9h    set list device timeout
  8917.  BAh    set AUX timeout value
  8918.  BBh    execute XIOS service
  8919.  BDh    (DR Multiuser DOS) delay
  8920.  FFh    return 80386 to native mode
  8921.  
  8922. Values for DOS Plus v2.1 XIOS functions:
  8923.  00h    terminate program
  8924.  01h    ???
  8925.  02h    check for console input status
  8926.  03h    read character from console
  8927.  04h    write character to console
  8928.  05h    write character to list device
  8929.  06h    write character to auxiliary device
  8930.  07h    read cahracter from auxiliary device
  8931.  0Fh    get list device status
  8932.  10h-14h reserved
  8933.  15h    device initialization
  8934.  16h    check console output status
  8935.  17h-7Fh reserved
  8936. ---BBC Acorn---
  8937.  80h    get XIOS version
  8938.  81h    get Tube semaphore
  8939.  82h    release Tube semaphore
  8940.  83h    select text/graphics
  8941.  84h    update B&W graphics rectangle
  8942.  85h    update color graphics rectangle
  8943.  86h    get/release/update mouse
  8944.  87h    get system error info
  8945.  88h    entry in CLOCK called by WatchDog RSP
  8946.  89h    BBC OSBYTE function
  8947.  8Ah    BBC OSWORD function
  8948.  
  8949. DR Multiuser DOS Error Return Codes:
  8950.  00h no error
  8951.  01h system call not implmented
  8952.  02h illegal system call number
  8953.  03h cannot find memory
  8954.  04h illegal flag number
  8955.  05h flag overrun
  8956.  06h flag underrun
  8957.  07h no unused Queue Descriptors
  8958.  08h no free queue buffer
  8959.  09h cannot find queue
  8960.  0Ah queue in use
  8961.  0Ch no free Process Descriptors
  8962.  0Dh no queue access
  8963.  0Eh empty queue
  8964.  0Fh full queue
  8965.  10h CLI queue missing
  8966.  11h no 8087 in system
  8967.  12h no unused Memory Descriptors
  8968.  13h illegal console number
  8969.  14h no Process Descriptor match
  8970.  15h no console match
  8971.  16h no CLI process
  8972.  17h illegal disk number
  8973.  18h illegal filename
  8974.  19h illegal filetype
  8975.  1Ah character not ready
  8976.  1Bh illegal Memory Descriptor
  8977.  1Ch bad return from BDOS load
  8978.  1Dh bad return from BDOS read
  8979.  1Eh bad return from BDOS open
  8980.  1Fh null command
  8981.  20h not owner of resource
  8982.  21h no CSEG in load file
  8983.  22h process Descriptor exists on Thread Root
  8984.  23h could not terminate process
  8985.  24h cannot attach to process
  8986.  25h illegal list device number
  8987.  26h illegal password
  8988.  28h external termination occurred
  8989.  29h fixup error upon load
  8990.  2Ah flag set ignored
  8991.  2Bh illegal auxilliary device number
  8992. --------O-E0----CL03-------------------------
  8993. INT E0 - DR Multiuser DOS - "A_READ" - READ CHARACTER FROM AUX DEVICE
  8994.     CL = 03h
  8995. Return: AL = ASCII character
  8996. Notes:    A_READ reads the next 8-bit character from the logical auxilliary
  8997.       input device (AUXn:); control is not returned to the calling
  8998.       process until a character has been read.
  8999.     if another process owns AUX, this call blocks until the device becomes
  9000.       available
  9001. SeeAlso: INT 21/AH=03h,INT E0/CL=04h,INT E0/CL=07h,INT E0/CL=A5h,INT E0/CL=ACh
  9002. --------O-E0----CL04-------------------------
  9003. INT E0 - DR Multiuser DOS - "A_WRITE" - WRITE CHARACTER TO AUX DEVICE
  9004.     CL = 04h
  9005.     DL = ASCII character
  9006. Return: nothing
  9007. Note:    if another process owns AUX, this call blocks until the device becomes
  9008.       available
  9009. SeeAlso: INT 21/AH=04h,INT E0/CL=03h,INT E0/CL=08h,INT E0/CL=A5h,INT E0/CL=ADh
  9010. --------O-E0----CL07-------------------------
  9011. INT E0 - DR Multiuser DOS - "A_STATIN" - GET INPUT STATUS OF AUX DEVICE
  9012.     CL = 07h
  9013. Return: AL = status
  9014.         00h not ready
  9015.         FFh character available
  9016. Desc:    determine whether the current AUX device has input available
  9017. SeeAlso: INT E0/CL=03h,INT E0/CL=08h
  9018. --------O-E0----CL08-------------------------
  9019. INT E0 - DR Multiuser DOS - "A_STATOUT" - GET OUTPUT STATUS OF AUX DEVICE
  9020.     CL = 08h
  9021. Return: AL = status
  9022.         00h not ready
  9023.         FFh ready for output
  9024. Desc:    determine whether the current AUX device is able to accept more output
  9025. SeeAlso: INT E0/CL=04h,INT E0/CL=07h
  9026. --------O-E0----CL59-------------------------
  9027. INT E0 - ConcCP/M,DR Multiuser DOS - "S_MEMORY" - RESERVE MEMORY IN GLOBAL AREA
  9028.     CL = 59h
  9029.     DX = size in bytes
  9030. Return: AX = FFFFh if failed
  9031.     AX = other if successful
  9032.         ES:BX -> reserved memory
  9033. --------O-E0----CL86-------------------------
  9034. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_MAKE" - CREATE MESSAGE QUEUE
  9035.     CL = 86h
  9036.     DS:DX -> queue descriptor (see below)
  9037. Return: AX = status
  9038.         0000h success
  9039.         FFFFh failure
  9040.     CX = error code
  9041. SeeAlso: INT E0/CL=87h
  9042.  
  9043. Format of queue descriptor:
  9044. Offset    Size    Description
  9045.  00h  2 WORDs    internal use, initialize to zeros
  9046.  04h    WORD    flags
  9047.  06h  8 BYTEs    queue name
  9048.  0Eh    WORD    length of message
  9049.  10h    WORD    number of messages
  9050.  12h  4 WORDs    internal use, initialize to zeros
  9051.  1Ah    WORD    offset in system area of buffer for messages
  9052. --------O-E0----CL87-------------------------
  9053. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_OPEN" - OPEN MESSAGE QUEUE
  9054.     CL = 87h
  9055.     DS:DX -> queue parameter block (see below)
  9056. Return: AX = status
  9057.         0000h success
  9058.         FFFFh failure
  9059.     CX = error code
  9060. SeeAlso: INT E0/CL=86h,INT E0/CL=89h
  9061.  
  9062. Format of queue parameter block:
  9063. Offset    Size    Description
  9064.  00h    WORD    internal use, initialize to zero
  9065.  02h    WORD    queue ID (set by INT E0/CL=87h)
  9066.  04h    WORD    internal use, initialize to zero
  9067.  06h    WORD    offset of queue message buffer
  9068.  08h  8 BYTEs    queue name
  9069. --------O-E0----CL89-------------------------
  9070. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_READ" - READ MESSAGE QUEUE
  9071.     CL = 89h
  9072.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  9073. Return: AX = status
  9074.         0000h success
  9075.         FFFFh failure
  9076.     CX = error code
  9077. SeeAlso: INT E0/CL=87h,INT E0/CL=8Ah,INT E0/CL=8Bh
  9078. --------O-E0----CL8A-------------------------
  9079. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CREAD" - CONDITIONALLY READ MSG QUEUE
  9080.     CL = 8Ah
  9081.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  9082. Return: AX = status
  9083.         0000h success
  9084.         FFFFh failure
  9085.     CX = error code
  9086. SeeAlso: INT E0/CL=87h,INT E0/CL=89h,INT E0/CL=8Ch
  9087. --------O-E0----CL8B-------------------------
  9088. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_WRITE" - WRITE MESSAGE QUEUE
  9089.     CL = 8Bh
  9090.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  9091. Return: AX = status
  9092.         0000h success
  9093.         FFFFh failure
  9094.     CX = error code
  9095. SeeAlso: INT E0/CL=89h,INT E0/CL=8Ch
  9096. --------O-E0----CL8C-------------------------
  9097. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CWRITE" - CONDITIONALLY WRITE MSG QUEUE
  9098.     CL = 8Ch
  9099.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  9100. Return: AX = status
  9101.         0000h success
  9102.         FFFFh failure
  9103.     CX = error code
  9104. SeeAlso: INT E0/CL=8Ah,INT E0/CL=8Bh
  9105. --------O-E0----CL8E-------------------------
  9106. INT E0 - ConcCP/M,DR Multiuser DOS - "P_DISPATCH" - CALL DISPATCHER
  9107.     CL = 8Eh
  9108.     DX = FFFFh (optional) to force dispatch
  9109. Return: nothing
  9110. Desc:    allow other processes of the same or higher priority to run if they
  9111.       are ready
  9112. Note:    if DX=FFFFh, a dispatch is forced even if no other process is ready
  9113. SeeAlso: INT E0/CL=91h
  9114. --------O-E0----CL91-------------------------
  9115. INT E0 - ConcCP/M,DR Multiuser DOS - "P_PRIORITY" - SET PROCESS PRIORITY
  9116.     CL = 91h
  9117.     DL = new priority (00h highest to FFh lowest)
  9118. Note:    sets priority of calling process; transient processes are initialized
  9119.       to priority C8h
  9120. SeeAlso: INT E0/CL=8Eh
  9121. --------O-E0----CL93-------------------------
  9122. INT E0 - ConcCP/M,DR Multiuser DOS - "C_DETACH" - DETACH FROM DEFAULT CONSOLE
  9123.     CL = 93h
  9124. Return: AX = status
  9125.         0000h successfully detached
  9126.         FFFFh detach failed
  9127. --------O-E0----CLA5-------------------------
  9128. INT E0 - DR Multiuser DOS - "A_ATTACH" - ATTACH AUX DEVICE
  9129.     CL = A5h
  9130. Desc:    attaches the default auxiliary device to the calling process unless
  9131.       it is already attached to another process, in which case the call
  9132.       blocks until the device becomes available
  9133. Note:    this call should be used before attempting to read or write from
  9134.       the AUX device; however, the I/O calls internally call this function
  9135.       to ensure device ownership
  9136. SeeAlso: INT E0/CL=03h,INT E0/CL=04h,INT E0/CL=A6h,INT E0/CL=A7h,INT E0/CL=A8h
  9137. SeeAlso: INT E0/CL=ACh,INT E0/CL=ADh,INT E0/CL=B0h
  9138. --------O-E0----CLA6-------------------------
  9139. INT E0 - DR Multiuser DOS - "A_DETACH" - DETACH FROM AUX DEVICE
  9140.     CL = A6h
  9141. Return: AX = status
  9142.         0000h successfully detached
  9143.         FFFFh detach failed
  9144.     CX = error code
  9145. SeeAlso: INT E0/CL=A5h,INT E0/CL=A7h
  9146. --------O-E0----CLA7-------------------------
  9147. INT E0 - DR Multiuser DOS - "A_CATTACH" - CONDITIONALLY ATTACH TO AUX DEVICE
  9148.     CL = A7h
  9149. Return: AX = status
  9150.         0000h attached
  9151.         FFFFh unable to attach
  9152. Desc:    attaches the default auxiliary device to the calling process if it is
  9153.       available
  9154. Note:    does not block if the device is already in use
  9155. SeeAlso: INT E0/CL=A5h,INT E0/CL=A6h,INT E0/CL=A8h,INT E0/CL=B0h
  9156. --------O-E0----CLA8-------------------------
  9157. INT E0 - DR Multiuser DOS - "A_SET" - SET DEFAULT AUX DEVICE NUMBER
  9158.     CL = A8h
  9159.     DL = auxiliary device number
  9160. Return: AX = status
  9161.         0000h successful
  9162.         FFFFh failed
  9163.     CX = error code
  9164. Desc:    specify which physical device will become AUX
  9165. SeeAlso: INT E0/CL=A5h,INT E0/CL=A9h
  9166. --------O-E0----CLA9-------------------------
  9167. INT E0 - DR Multiuser DOS - "A_GET" - GET DEFAULT AUX DEVICE NUMBER
  9168.     CL = A9h
  9169. Return: AL = current default auxiliary device number
  9170. Desc:    determine which physical device is currently AUX
  9171. SeeAlso: INT E0/CL=A8h
  9172. --------O-E0----CLAC-------------------------
  9173. INT E0 - DR Multiuser DOS - "A_READBLK" - READ STRING FROM AUX DEVICE
  9174.     CL = ACh
  9175.     DS:DX -> character control block (CHCB) (see below)
  9176. Return: AX = number of characters read
  9177. Desc:    read characters from the default auxiliary (AUXn:) device into a buffer
  9178.       until the buffer is full or the device is no longer ready
  9179. Notes:    if the device is initially not ready, blocks until at least one
  9180.       character has been read
  9181.     if another process owns AUX, this call blocks until the device becomes
  9182.       available
  9183. SeeAlso: INT E0/CL=03h,INT E0/CL=A5h,INT E0/CL=ADh
  9184.  
  9185. Format of character control block (CHCB):
  9186. Offset    Size    Description
  9187.  00h    DWORD    pointer to character buffer
  9188.  04h    WORD    length of character buffer
  9189. --------O-E0----CLAD-------------------------
  9190. INT E0 - DR Multiuser DOS - "A_WRITEBLK" - WRITE STRING TO AUX DEVICE
  9191.     CL = ADh
  9192.     DS:DX -> character control block (see INT E0/CL=ACh)
  9193. Return: AX = number of characters written
  9194. Note:    does not return until at least one character has been written
  9195. SeeAlso: INT E0/CL=04h,INT E0/CL=A5h,INT E0/CL=ACh
  9196. --------O-E0----CLB0-------------------------
  9197. INT E0 - DR Multiuser DOS - "A_CONFIG" - GET/SET AUX DEVICE PARAMETERS
  9198.     CL = B0h
  9199.     DX:DX -> AUX device parameter block (see below)
  9200. Return: AX = status
  9201.         0000h successful
  9202.         parameter block updated
  9203.         FFFFh failed
  9204.         CX = error code
  9205. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  9206.  
  9207. Format of AUX device parameter block:
  9208. Offset    Size    Description
  9209.  00h    BYTE    function (00h get, 01h set)
  9210.  01h    BYTE    baud rate (see below) FFh = don't change/unknown
  9211.  02h    BYTE    parity (see below)
  9212.  03h    BYTE    stop bits (00h one, 01h 1.5, 02h two, FFh unknown/don't change)
  9213.  04h    BYTE    data bits (05h-08h or FFh unknown/don't change)
  9214.  05h    BYTE    handshake (00h none, 01h DTS/DSR, 02h RTS/CTS, 04h XON/XOFF,
  9215.         FFh unknown/don't change)
  9216.  06h    BYTE    XON character, FFh unknown/don't change
  9217.  07h    BYTE    XOFF character, FFh unknown/don't change
  9218.  
  9219. Values for parity:
  9220.  00h    none
  9221.  01h    odd
  9222.  02h    none
  9223.  03h    even
  9224.  04h    stick parity bit
  9225.  FFh    don't change/unknown
  9226.  
  9227. Values for baud rate:
  9228.  00h    50 baud
  9229.  01h    62.5 baud
  9230.  02h    75 baud
  9231.  03h    110 baud
  9232.  04h    134.5 baud
  9233.  05h    150 baud
  9234.  06h    200 baud
  9235.  07h    300 baud
  9236.  08h    600 baud
  9237.  09h    1200 baud
  9238.  0Ah    1800 baud
  9239.  0Bh    2000 baud
  9240.  0Ch    2400 baud
  9241.  0Dh    3600 baud
  9242.  0Eh    4800 baud
  9243.  0Fh    7200 baud
  9244.  10h    9600 baud
  9245.  11h    19200 baud
  9246.  12h    38400 baud
  9247.  13h    56000 baud
  9248.  14h    76800 baud
  9249.  15h    115200 baud
  9250. --------O-E0----CLB1-------------------------
  9251. INT E0 - DR Multiuser DOS - "A_CONTROL" - GET/SET AUX CONTROL PARAMETERS
  9252.     CL = B1h
  9253.     DS:DX -> AUX device control block (see below)
  9254. Return: AX = status
  9255.         0000h successful
  9256.         control block updated
  9257.         FFFFh failed
  9258.         CX = error code
  9259. SeeAlso: INT E0/CL=B0h,INT E0/CL=B2h
  9260.  
  9261. Format of AUX device control block:
  9262. Offset    Size    Description
  9263.  00h    BYTE    function (00h get, 01h set)
  9264.  01h    BYTE    DTR state (00h low, 01h high, FFh unknown/don't change)
  9265.  02h    BYTE    RTS state (00h low, 01h high, FFh unknown/don't change)
  9266.  03h    BYTE    DSR state (00h low, 01h high, FFh unknown/don't change)
  9267.  04h    BYTE    CTS state (00h low, 01h high, FFh unknown/don't change)
  9268.  05h    BYTE    DCD state (00h low, 01h high, FFh unknown/don't change)
  9269.  06h    BYTE    RI state (00h inactive, 01h active, FFh unknown/don't change)
  9270. --------O-E0----CLB2-------------------------
  9271. INT E0 - DR Multiuser DOS - "A_BREAK" - SEND BREAK TO AUX DEVICE
  9272.     CL = B2h
  9273.     DX = duration of break in system ticks (0001h-FFFFh)
  9274. Return: AX = status
  9275.         0000h successful
  9276.         break signal completed
  9277.         FFFFh failed
  9278.         CX = error code
  9279. Note:    if the AUX device is currently owned by another process, this call will
  9280.       block until the device becomes available
  9281. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  9282. --------O-E0----CLBD-------------------------
  9283. INT E0 - DR Multiuser DOS - "P_DELAY" - DELAY EXECUTION
  9284.     CL = BDh
  9285.     DX = delay in system ticks
  9286. Return: after the delay elapses
  9287. Notes:    the length of a system tick is installation-dependent (typically
  9288.       1/50 or 1/60 second); the length may be determined by reading the
  9289.       TICKSPERSEC value from the system data segment
  9290.     the actual delay before the process is rescheduled to run may be up to
  9291.       one tick longer than requested; the delay between rescheduling and
  9292.       actual execution cannot be predicted if higher-priority processes
  9293.       are awaiting a turn at the CPU
  9294. SeeAlso: INT 15/AH=86h,INT 1A/AX=FF01h,INT 2F/AX=1224h,INT 62/AX=0096h
  9295. --------r-E1---------------------------------
  9296. INT E1 - IBM ROM BASIC - used while in interpreter
  9297. Notes:    called by ROM BASIC
  9298.     BASIC.COM/BASICA.COM do not restore vector on termination
  9299. --------N-E1---------------------------------
  9300. INT E1 - PC Cluster Disk Server Information
  9301. SeeAlso: INT E2
  9302. --------r-E2---------------------------------
  9303. INT E2 - IBM ROM BASIC - used while in interpreter
  9304. Notes:    called by ROM BASIC
  9305.     BASIC.COM/BASICA.COM do not restore vector on termination
  9306. --------N-E2---------------------------------
  9307. INT E2 - PC Cluster Program
  9308. --------r-E3---------------------------------
  9309. INT E3 - IBM ROM BASIC - used while in interpreter
  9310. Notes:    called by ROM BASIC
  9311.     BASIC.COM/BASICA.COM do not restore vector on termination
  9312. --------r-E40005-----------------------------
  9313. INT E4 - Logitech Modula v2.0 - MonitorEntry
  9314.     AX = 0005h
  9315.     BX = priority
  9316. SeeAlso: AX=0006h
  9317. --------r-E40006-----------------------------
  9318. INT E4 - Logitech Modula v2.0 - MonitorExit
  9319.     AX = 0006h
  9320. SeeAlso: AX=0005h
  9321. --------r-E4---------------------------------
  9322. INT E4 - IBM ROM BASIC - used while in interpreter
  9323. Notes:    called by ROM BASIC
  9324.     BASIC.COM/BASICA.COM do not restore vector on termination
  9325. --------r-E5---------------------------------
  9326. INT E5 - IBM ROM BASIC - used while in interpreter
  9327. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9328.     BASIC.COM/BASICA.COM do not restore vector on termination
  9329. --------r-E6---------------------------------
  9330. INT E6 - IBM ROM BASIC - used while in interpreter
  9331. Notes:    called by ROM BASIC
  9332.     BASIC.COM/BASICA.COM do not restore vector on termination
  9333. --------r-E7---------------------------------
  9334. INT E7 - IBM ROM BASIC - used while in interpreter
  9335. Notes:    called by ROM BASIC
  9336.     BASIC.COM/BASICA.COM do not restore vector on termination
  9337. --------r-E8---------------------------------
  9338. INT E8 - IBM ROM BASIC - used while in interpreter
  9339. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9340.     BASIC.COM/BASICA.COM do not restore vector on termination
  9341. --------r-E9---------------------------------
  9342. INT E9 - IBM ROM BASIC - used while in interpreter
  9343. Notes:    called by ROM BASIC
  9344.     BASIC.COM/BASICA.COM do not restore vector on termination
  9345. --------r-EA---------------------------------
  9346. INT EA - IBM ROM BASIC - used while in interpreter
  9347. Notes:    called by ROM BASIC
  9348.     BASIC.COM/BASICA.COM do not restore vector on termination
  9349. --------r-EB---------------------------------
  9350. INT EB - IBM ROM BASIC - used while in interpreter
  9351. Notes:    called by ROM BASIC
  9352.     BASIC.COM/BASICA.COM do not restore vector on termination
  9353. --------r-EC---------------------------------
  9354. INT EC - IBM ROM BASIC - used while in interpreter
  9355. Notes:    called by ROM BASIC
  9356.     BASIC.COM/BASICA.COM do not restore vector on termination
  9357. --------N-EC---------------------------------
  9358. INT EC - used by Alloy NTNX
  9359. --------r-EC---------------------------------
  9360. INT EC - Exact - RUNTIME INTERFACE MULTIPLEXOR
  9361.     AX = function number (0000h to 0140h)
  9362.     STACK:    DWORD address to return to
  9363.         any arguments required by function
  9364. Return: STACK:    return address popped, but otherwise unchanged
  9365. Desc:    this is the interface from applications to the runtime system by Exact
  9366.       Automatisering B.V. of the Netherlands.  By using this interrupt,
  9367.       it can provide DLL-style capabilities under MS-DOS.
  9368. Note:    the interrupt handler removes the return address and flags placed on
  9369.       the stack by the INT EC, then jumps to the appropriate function
  9370. --------r-ED---------------------------------
  9371. INT ED - IBM ROM BASIC - used while in interpreter
  9372. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9373.     BASIC.COM/BASICA.COM do not restore vector on termination
  9374.     INT 80 through INT ED are modified but not restored by Direct Access
  9375.       v4.0, and may be left dangling by other programs written with the
  9376.       same version of compiled BASIC
  9377. SeeAlso: INT EC"BASIC",INT EE"BASIC"
  9378. --------r-EE---------------------------------
  9379. INT EE - IBM ROM BASIC - used while in interpreter
  9380. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9381.     BASIC.COM/BASICA.COM do not restore vector on termination
  9382. SeeAlso: INT ED"BASIC",INT EE"BASIC"
  9383. --------r-EF---------------------------------
  9384. INT EF - BASIC - ORIGINAL INT 09 VECTOR
  9385. Note:    BASIC.COM/BASICA.COM do not restore vector on termination
  9386. SeeAlso: INT EE"BASIC",INT F0"BASIC"
  9387. --------O-EF----CX0473-----------------------
  9388. INT EF - GEM - INTERFACE
  9389.     CX = 0473h
  9390.     DS:DX -> GEM parameter block
  9391. --------r-F0---------------------------------
  9392. INT F0 - BASICA.COM, GWBASIC, compiled BASIC - ORIGINAL INT 08 VECTOR
  9393. Note:    BASICA.COM does not restore vector on termination
  9394. SeeAlso: INT EF"BASIC"
  9395. --------*-F1---------------------------------
  9396. INT F1 - reserved for user interrupt
  9397. --------s-F1---------------------------------
  9398. INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH
  9399.     DS:BX -> '$'-terminated text string
  9400. Program: SPEECH.COM is a resident text-to-speech converter by Douglas Sisco
  9401. --------s-F1---------------------------------
  9402. INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM
  9403. SeeAlso: INT F2"SPEECH"
  9404. --------U-F1---------------------------------
  9405. INT F1 - AQUEDUCT, PIPELINE - GET DATA AREA ADDRESS
  9406. Return: AX:BX -> data area
  9407. Program: AQUEDUCT and PIPELINE are TSRs by James W. Birdsall to connect COM1
  9408.       and COM2 in software
  9409. Note:    The installation check consists of testing for the following signature
  9410.       immediately preceding the interrupt handler: "JWBtvv" where 't' is
  9411.       either "A" for AQUEDUCT or "P" for PIPELINE and "vv" is a two-digit
  9412.       version number
  9413. Index:    installation check;AQUEDUCT|installation check;PIPELINE
  9414. --------v-F1---------------------------------
  9415. INT F1 - VIRUS - "Violetta" - ???
  9416. Note:    used but not chained by virus
  9417. SeeAlso: INT E0"VIRUS",INT FF"VIRUS"
  9418. --------*-F2---------------------------------
  9419. INT F2 - reserved for user interrupt
  9420. --------s-F2---------------------------------
  9421. INT F2 - Andy C. McGuire SPEECH.COM/SAY.COM
  9422. SeeAlso: INT F1"SPEECH"
  9423. ----------F2---------------------------------
  9424. INT F2 - ICCTSR 1.0 - ImageCapture COLOR Developer's Kit - API
  9425.     AH = function
  9426.         01h power up
  9427.         02h power down
  9428.         03h set controls
  9429.         04h capture image
  9430.         05h display image
  9431.         06h read file
  9432.         07h write file
  9433.         08h write array
  9434.         09h read pixel
  9435.         0Ah write pixel
  9436.         0Bh check if VGA present
  9437.         0Ch set video mode
  9438.         0Dh check for keystroke
  9439.         0Eh delay
  9440.     ???
  9441. Return: ???
  9442. Program: ImageCapture is a product of International Computers
  9443. SeeAlso: INT F3"ICCTSR"
  9444. --------*-F3---------------------------------
  9445. INT F3 - reserved for user interrupt
  9446. --------s-F3---------------------------------
  9447. INT F3 - SoundBlaster - POINTER TO ECHO VALUE
  9448. Note:    this is not a vector, but a pointer to a DWORD containing the echo
  9449.       value selected with SET-ECHO.EXE
  9450. SeeAlso: INT 2F/AX=FBFBh
  9451. ----------F3---------------------------------
  9452. INT F3 - ICCTSR 1.0 - HANDSHAKE ID VECTOR
  9453. Program: ImageCapture is a product of International Computers
  9454. SeeAlso: INT F2"ICCTSR"
  9455. --------*-F4---------------------------------
  9456. INT F4 - reserved for user interrupt
  9457. --------T-F4---------------------------------
  9458. INT F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK
  9459. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT FE"DoubleDOS"
  9460. --------*-F5---------------------------------
  9461. INT F5 - reserved for user interrupt
  9462. --------T-F5---------------------------------
  9463. INT F5 - DoubleDOS - ???
  9464. --------*-F6---------------------------------
  9465. INT F6 - reserved for user interrupt
  9466. --------T-F6---------------------------------
  9467. INT F6 - DoubleDOS - ???
  9468. --------*-F7---------------------------------
  9469. INT F7 - reserved for user interrupt
  9470. --------T-F7---------------------------------
  9471. INT F7 - DoubleDOS - ???
  9472. ----------F700-------------------------------
  9473. INT F7 - FSBBS 2.0 - CONFIGURATION RECORD
  9474.     AH = 00h
  9475.     AL = function
  9476.         00h get configuration record
  9477.         Return: DS:DX -> configuration record
  9478.         01h set configuration record
  9479.         02h get path for option
  9480.         DS:DX -> option name
  9481.         Return: DS:DX -> path
  9482.         03h determine whether configuration record set
  9483.         Return: AX = status
  9484.                 0000h set
  9485.                 0001h not yet set
  9486.         04h get link state
  9487.         Return: AX = state
  9488.                 0000h unlinked
  9489.                 0001h linked
  9490. Notes:    this information is preliminary and still subject to change
  9491.     all of the INT F7 calls for FSBBS are used for interprogram
  9492.       communication between the BBS kernel and the programs it spawns
  9493. SeeAlso: AH=01h
  9494. ----------F701-------------------------------
  9495. INT F7 - FSBBS 2.0 - USER RECORD
  9496.     AH = 01h
  9497.     AL = function
  9498.         00h get user record for user currently online
  9499.         Return: DS:DX -> user record
  9500.         01h set user record
  9501.         DS:DX -> user record
  9502. SeeAlso: AH=00h,AH=02h
  9503. ----------F702-------------------------------
  9504. INT F7 - FSBBS 2.0 - GET ACCOUNT NAME
  9505.     AH = 02h
  9506. Return: DS:DX -> 8-character blank-padded account name
  9507. SeeAlso: AH=01h
  9508. ----------F703-------------------------------
  9509. INT F7 - FSBBS 2.0 - TERMINAL NUMBER
  9510.     AH = 03h
  9511.     AL = function
  9512.         00h get terminal index number
  9513.         Return: DX = index number
  9514.         01h set terminal index number
  9515.         DX = terminal index
  9516. ----------F704-------------------------------
  9517. INT F7 - FSBBS 2.0 - PASSDATA BUFFER
  9518.     AH = 04h
  9519.     AL = function
  9520.         00h get PassData buffer contents
  9521.         DS:DX -> buffer for PassData contents
  9522.         01h set PassData contents
  9523.         DS:DX -> buffer containing new PassData
  9524.         CH = length of data in buffer
  9525. ----------F705-------------------------------
  9526. INT F7 - FSBBS 2.0 - TIMER FUNCTIONS
  9527.     AH = 05h
  9528.     AL = function
  9529.         00h get time remaining
  9530.         Return: DX = number of minutes remaining
  9531.         01h get current time
  9532.         Return: DS:DX -> 8-character time string
  9533.         02h increment time
  9534.         DX = number of additional minutes
  9535.         03h decrement time
  9536.         DX = number of minutes
  9537. SeeAlso: AH=06h
  9538. ----------F706-------------------------------
  9539. INT F7 - FSBBS 2.0 - FUNCTION AVAILABILITY
  9540.     AH = 06h
  9541.     AL = function
  9542.         00h determine whether function is available
  9543.         DX = index of function
  9544.         01h set function availability
  9545.         DX = index of function
  9546.         ???
  9547. SeeAlso: AH=05h,AH=07h
  9548. ----------F707-------------------------------
  9549. INT F7 - FSBBS 2.0 - DUMP FUNCTIONS
  9550.     AH = 07h
  9551.     AL = function
  9552.         00h get current dump mode
  9553.         Return: DL = mode
  9554.         01h set dump mode
  9555.         DL = mode
  9556. SeeAlso: AH=06h
  9557. --------*-F8---------------------------------
  9558. INT F8 - reserved for user interrupt
  9559. --------h-F8---------------------------------
  9560. INT F8 - TANDY??? - 100 HZ INTERRUPT
  9561. SeeAlso: INT FA"USART"
  9562. --------T-F8---------------------------------
  9563. INT F8 - DoubleDOS - ???
  9564. --------*-F9---------------------------------
  9565. INT F9 - reserved for user interrupt
  9566. --------T-F9---------------------------------
  9567. INT F9 - DoubleDOS - ???
  9568. --------*-FA---------------------------------
  9569. INT FA - reserved for user interrupt
  9570. --------h-FA---------------------------------
  9571. INT FA - TANDY??? - SERIAL PORT USART INTERRUPT
  9572. SeeAlso: INT F8"100 HZ",INT FB"USART"
  9573. --------T-FA---------------------------------
  9574. INT FA - DoubleDOS - TURN OFF TIMESHARING
  9575. SeeAlso: INT 21/AH=EAh"DoubleDOS",INT FB"DoubleDOS"
  9576. --------*-FB---------------------------------
  9577. INT FB - reserved for user interrupt
  9578. --------h-FB---------------------------------
  9579. INT FB - TANDY??? - KEYBOARD USART RECEIVE INTERRUPT
  9580. SeeAlso: INT FA"USART"
  9581. --------T-FB---------------------------------
  9582. INT FB - DoubleDOS - TURN ON TIMESHARING
  9583. SeeAlso: INT 21/AH=EBh"DoubleDOS",INT FA"DoubleDOS"
  9584. --------*-FC---------------------------------
  9585. INT FC - reserved for user interrupt
  9586. --------T-FC---------------------------------
  9587. INT FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS
  9588. Return: ES = segment of display buffer
  9589. Desc:    determine the address of the virtual screen to which the program
  9590.       should write instead of the actual video memory, so that the
  9591.       multitasked programs do not interfere with each other's output
  9592. Note:    the display buffer may be moved if multitasking is enabled
  9593. SeeAlso: INT 21/AH=ECh"DoubleDOS",INT FB"DoubleDOS"
  9594. --------*-FD---------------------------------
  9595. INT FD - reserved for user interrupt
  9596. --------T-FD---------------------------------
  9597. INT FD - DoubleDOS - ???
  9598. --------S-FD---------------------------------
  9599. INT FD - TFPCX - INSTALLATION CHECK
  9600.     AH = function (see separate entries below)
  9601. Program: TFPCX is an interface between modem and terminal program for packet-
  9602.       radio communications
  9603. Notes:    the installation check consists of testing for the string "N5NX" three
  9604.       bytes beyond the interrupt handler; INT FD is the default, but may
  9605.       be changed, so the full installation check consists of scanning
  9606.       for the signature
  9607.     TFPCX returns AX=FFFFh on any unsupported function call
  9608. SeeAlso: AH=01h,AH=03h,AH=FEh
  9609. --------S-FD01-------------------------------
  9610. INT FD - TFPCX - TEST FOR CHARACTER WAITING
  9611.     AH = 01h
  9612. Return: AX = status
  9613.         0000h no characters waiting
  9614.         0001h character available for input
  9615. Program: TFPCX is an interface between modem and terminal program for packet-
  9616.       radio communications
  9617. SeeAlso: AH=02h
  9618. --------S-FD02-------------------------------
  9619. INT FD - TFPCX - GET CHARACTER
  9620.     AH = 02h
  9621. Return: AL = character
  9622. Notes:    this call is only allowed if AH=01h indicated that a character is
  9623.       available
  9624.     all available characters should be read before sending any additional
  9625.       characters
  9626. SeeAlso: AH=01h,AH=03h
  9627. --------S-FD03-------------------------------
  9628. INT FD - TFPCX - OUTPUT CHARACTER
  9629.     AH = 03h
  9630.     AL = character to send
  9631. SeeAlso: AH=02h
  9632. --------S-FDFE-------------------------------
  9633. INT FD - TFPCX - GET VERSION
  9634.     AH = FEh
  9635. Return: AH = major version
  9636.     AL = minor version
  9637. Program: TFPCX is an interface between modem and terminal program for packet-
  9638.       radio communications
  9639. SeeAlso: AH=01h,AH=03h
  9640. --------B-FE---------------------------------
  9641. INT FE - AT/XT286/PS50+ - destroyed by return from protected mode
  9642. Note:    the ROM BIOS uses 0030h:0100h as the initial stack on startup, which
  9643.       is the last fourth of the interrupt vector table.  If the processor
  9644.       is returned to real mode via a hardware reset (the only possibility
  9645.       on an 80286, though there are a number of ways of generating one),
  9646.       then the BIOS startup code stacks three words on its scratch stack
  9647.       before determining that a return to real mode has been requested.
  9648.       As a result, INT FE and INT FF are corrupted.
  9649. SeeAlso: INT FF"XT286"
  9650. --------T-FE---------------------------------
  9651. INT FE - DoubleDOS - GIVE UP TIME
  9652.     AL = number of 55ms time slices to give away
  9653. Return: after other program (if active) has run
  9654. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F4"DoubleDOS"
  9655. --------G-FE---------------------------------
  9656. INT FE - Turbo Debugger 8086 v2.5+ - OVERLAY MANAGER
  9657. SeeAlso: INT 3F
  9658. --------B-FF---------------------------------
  9659. INT FF - AT/XT286/PS50+ - destroyed by return from protected mode
  9660. Note:    (see INT FE"XT286")
  9661. SeeAlso: INT FE"XT286"
  9662. --------b-FF---------------------------------
  9663. INT FF - Z100 - WARM BOOT
  9664. SeeAlso: INT 40"Z100"
  9665. --------Q-FF---------------------------------
  9666. INT FF U - QEMM-386.SYS v6.0+ - internal
  9667. Notes:    requires that a byte in the conventional-memory stub be set to the
  9668.       desired function number (00h through 0Ch)
  9669. --------v-FF---------------------------------
  9670. INT FF - VIRUS - "Violetta" - ???
  9671. Note:    used but not chained by virus
  9672. SeeAlso: INT E0"VIRUS",INT F1"VIRUS"
  9673. --------!---FILELIST-------------------------
  9674. Please redistribute the following files unmodified as a group, in a trio of
  9675. archives named INTER37A through INTER37C (preferably the original authenticated
  9676. PKZIP archives):
  9677.     INTERRUP.1ST    the read-me file, containing credits, availability info
  9678.     INTERRUP.A    INT 00 through INT 14
  9679.     INTERRUP.B    INT 15 through INT 15
  9680.     INTERRUP.C    INT 16 through INT 21/41
  9681.     INTERRUP.D    INT 21/42 through INT 21/7F
  9682.     INTERRUP.E    INT 21/80 through INT 21/FF
  9683.     INTERRUP.F    INT 22 through INT 2F/7F
  9684.     INTERRUP.G    INT 2F/80 through INT 2F/FF
  9685.     INTERRUP.H    INT 30 through INT 5F
  9686.     INTERRUP.I    INT 60 through INT 67
  9687.     INTERRUP.J    INT 68 through INT FF
  9688.     INTERRUP.PRI    a brief introduction to interrupts
  9689.     INTPRINT.COM    a simple formatter that also generates a list summary
  9690.     INTPRINT.DOC    instructions for INTPRINT
  9691.     86BUGS.LST    a listing of CPU bugs and undocumented features
  9692.     CMOS.LST    a description of the CMOS RAM data bytes
  9693.     GLOSSARY.LST    a glossary of terms, abbreviations, and acronyms
  9694.     MEMORY.LST    format of the BIOS data area
  9695.     PORTS.LST    a listing of I/O ports
  9696.     COMBINE.BAT    combine the pieces of the list into a single file
  9697. The following files should be distributed in an archive called INTER37D:
  9698.     INT.COM        invoke interrupts from commandline
  9699.     INT2HLP.BAT    Perl script to convert list into QuickHelp database
  9700.     INT2GUID.*    convert list into TurboPower GUIDE or POPHELP database
  9701.     INT2QH.*    program to convert list into QuickHelp database
  9702.     INTERVUE.EXE    indexed interrupt list browser
  9703.     INTHELP.*    convert list into TurboPower GUIDE database
  9704.     INTLIST.E    Epsilon extension for handling list
  9705.     INTLIST.ICO    Windows icon for INTERVUE
  9706.     INTPRINT.C    source code for INTPRINT
  9707.     RB2NG.*        convert list into Norton Guides database
  9708. This compilation is Copyright (c) 1989,1990,1991,1992,1993 Ralf Brown
  9709. --------!---CONTACT_INFO---------------------
  9710. Internet: ralf@telerama.pgh.pa.us
  9711. UUCP: {uunet,harvard}!telerama.pgh.pa.us!ralf
  9712. FIDO: Ralf Brown 1:129/26.1
  9713.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  9714.     unless you address it to me)
  9715. CIS:  >INTERNET:ralf@telerama.pgh.pa.us
  9716.